vue开发后台管理系统小结

最近工作需要用vue开发了后台管理系统,由于是第一次开发后台管理系统,中间也遇到了一些坑,想在这里做个总结,也算是对于自己工作的一个肯定。我们金融性质的网站所以就不将代码贴出来哈

一、项目概述

首先工作需求是这样的,开发一个公司的总后台,包含各个不同的模块,总体难度一般,没有开发ui图,用的vue-cli 、elementui框架、webpack打包。

总需求的思维导图见链接  http://naotu.baidu.com/file/e8c31b43dfb2f18a3c523e0fa1393c02?token=945b226dc67040a4

总结了下后台管理系统主要的内容包括:1、各种列表的增删改查(其中表的增删改查是重点,其中结合分页和详情显示)2、权限的控制(权限的控制主要是后台的控制、前端的显示)  3、筛选功能(筛选数据在后台中几乎和表格一样多)  4、系统设置(菜单列表和个人界面、信息的设置)

二、项目的构建用的是vue-cli自动生成的,其中引入了vue-router、axios、element-ui等模块,生成header组件和分页组件来公用。

这是目录结构build用来放置webpack的配置,dist是发布在服务器上的文件,src下面是代码文件,文件入口时mian.js.

三、总结vue常用小的知识点

1、传值(子父组件之间、页面跳转之间)

(1)父组件通过props给子组件传递参数

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://unpkg.com/vue"></script>
</head>
<body>
	<div id="app">
		<my-component :my-message="value"></my-component>
	</div>
	<script>
		//注册组件
		Vue.component(‘my-component‘,{
			//组件模板
			template:‘<div>我是全局组件/{{myMessage}}</div>‘,
			//父组件通过props传递参数给子组件
			props:[‘myMessage‘]
		})
		//实例化vue
		new Vue({
			el:‘#app‘,
			data () {
				return {
					value:‘我是父组件传过来的‘
				}
			}
		})
	</script>
</body>
</html>

(2)子组件通过props给父组件传递参数

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<script src="https://unpkg.com/vue"></script>
</head>
<body>
	<div id="app">
		<child v-on:send-val="getVal"></child>
	</div>
	<script>
		Vue.component(‘child‘,{
			template:‘<button v-on:click="handleClick">我是子组件</button>‘,
			data () {
				return {
					value:1
				}
			},
			methods:{
				handleClick:function() {
					this.value += 1;
					//子组件通过$emit传递事件
					this.$emit(‘send-val‘,this.value)
				}
			}
		})
		new Vue({
			el:‘#app‘,
			methods:{
				getVal(val){
					console.info(‘val‘,val)
				}
			}
		})
	</script>
</body>
</html>

(3)页面跳转之间

  1、路由传值

方法一(直接用路由路径):
this.$router.push({
    path:‘/index‘ ,query:{"id":‘传递的id值‘}
})

在index页面接收参数
this.$route.query.id

方法二(定义好路由名称):
this.$router.push({
   name:‘index‘,
   query/params:{
       id:‘传递的id值‘
    }
)

params刷新页面参数丢失,所以建议query传参

  2、利用vue实例来传值

    第一:先定义一个全局

    var bus = new Vue();

    第二:在需要传参的组件中定义$emit

    bus.$emit(‘sendVal‘,id)

    第三:在需要接收的组件中用$on来监听参数的改变

    bus.$on(‘sendVal‘,function(val){console.info(val)});

    第四:在钩子函数beforeDestroy()中关闭

    bus.$off(‘sendVal‘)

  3、<router-link :to="{ path: ‘register‘, query: { id:‘id‘ }}">Register</router-link>

2、路由钩子函数

router.beforeEach((to, from, next) => {
  if (to.path == ‘/login‘) {
    sessionStorage.removeItem(‘userInfo‘);
  }
  let userInfo = sessionStorage.getItem(‘userInfo‘);
  if (!userInfo && to.path != ‘/login‘) {
    next({ path: ‘/login‘ })
  } else {
    next()
  }
  if(to.path == ‘/‘){
    next({path:‘login‘})
  }else{
    next();
  }
})

参数to from next可以理解成到哪个页面去 ,从哪个页面来,允许跳转,在判断是否跳转到登陆页面使用。

3、vue2.0过滤器

  vue2.0去掉了1.0自带的过滤器,可以自己定义

//银行过滤器
Vue.filter(‘bankTran‘,function(value){
  let bank_name = ‘‘;
  switch(value){
    case ‘COMM‘:bank_name = ‘中国交通银行‘;break;
    case ‘SPDB‘:bank_name = ‘上海浦东发展银行‘;break;
    case ‘CMB‘ :bank_name = ‘招商银行‘;break;
    case ‘HXB‘ :bank_name = ‘华夏银行‘;break;
    case ‘CIB‘:bank_name = ‘兴业银行‘;break;
    case ‘CITIC‘:bank_name = ‘中信银行‘;break;
    case ‘GDB‘:bank_name = ‘广东发展银行‘;break;
    case ‘CEB‘:bank_name = ‘光大银行‘;break;
    case ‘CMBC‘:bank_name = ‘民生银行‘;break;
    case ‘SZPAB‘:bank_name = ‘平安银行‘;break;
    case ‘PSBC‘:bank_name = ‘中国邮政储蓄银行‘;break;
    case ‘CCB‘:bank_name = ‘中国建设银行‘;break;
    case ‘BOC‘:bank_name = ‘中国银行‘;break;
    case ‘ABC‘:bank_name = ‘中国农业银行‘;break;
    case ‘ICBC‘:bank_name = ‘中国工商银行‘;break;
  }
  return bank_name;
})

4、favcion  webpack处理问题

  在管理后台的开发中,当添加favcion时<link href="/favicon.ico" rel="icon" type="image/x-icon" />,却不能显示出来,最后将.ico文件放在了static下在本地终于成功的显示了出来,但在webpack打包的时候却遇到了问题,查了很多资料,最后在webpack的配置文件中增加了一行代码,favicon.ico文件放在根目录下面 终于成功。

5、查漏补缺:js数组梳理问题

判断数组a中是否有重复的值(1)

var a = [1,2,3,4];

var s = a.join(‘,‘)+‘,‘;

for(var i=0;i<a.length;i++){

  if(s.replace(arr[i]+‘,‘,‘‘).indexOf(a[i]>-1)){

    console.info(‘找到‘)

  }else{

    console.info(‘没有找到‘)

}

判断数组arr中是否有重复的值(2)

var arr = [1,2,3,4];

var arr1 = arr.sort();

for(var i=0;i<arr.length;i++){

   if(arr[i]==arr1[i]){

    console.info(‘有相等的值‘,arr[i])

    }

}

判断一个变量是否为一个数组

function isArray(obj){

return obj && typeof obj==‘object‘ && obj.constructor == Array

}

四、其他

1、emement-ui框架地址    http://element.eleme.io/#/zh-CN/component/installation

2、期间用到的时间处理:moment

时间: 2024-10-31 17:59:42

vue开发后台管理系统小结的相关文章

手把手教你用VUE开发后台管理系统(三):搭建SpringBoo 2.xt环境

原文地址:https://www.cnblogs.com/hugo123/p/11581938.html

完整开放完一个vue后台管理系统小结

最近业余帮朋友做两个vue项目,一个是面向用户纯展示系列的(后统称A项目),一个是后端管理系统类的(后统称B项目).两者在技术上都没难度,这里对开发过程遇到的问题.取舍等做一个小节. 关于项目搭建 目前vue-cli脚手架已经很成熟,创建项目很方便,按照官网文档或网上相应教程即可快速搭建(https://cli.vuejs.org/zh/guide/deployment.html) 优点:快速.方便.零配置.可扩展性强.灵活性强 缺点:对于小项目来讲,搭建不够精简,会默认安装多余的包(比如会默认

从零开始搭建vue+element-ui后台管理系统项目到上线

前言 之前有些过移动端的项目搭建的文章,感觉不写个pc端管理系统老感觉少了点什么,最近公司项目比较多,恰巧要做一个申报系统的后台管理系统,鉴于对vue技术栈比较熟悉,所以考虑还是使用vue技术栈来做:看过一个不错的后台配置模板(vue-element-admin),页面也挺美的,但是还是碍于不想看太多关于这个模板的配置说明,于是又拉出来之前我搭建的简易版的模板,决定重构下,使用自己搭建的后台系统模板,配置非常简单:本文将从初始化项目开始一直到打包上线做一个详细的介绍,看完本文章,绝对会对其中的一

项目总结:中后台管理系统类

项目类一:中后台管理系统类 中后台系统类多为内部人员使用.采用Vue+elementUI开发. 技术选型的理由有以下几点: 此类项目多为表单.列表.数据看板,vue生态有成熟的解决方案. 产品设计风格与elementUI设计风格相近. 团队成员更擅长使用Vue开发后台管理类项目,可以快速开发,节省成本. 一般的中后台管理系统实现的功能有以下几类: 模块化开发:功能.组件.路由.vuex的实现. 权限控制:请求权限,动态路由,按钮权限的实现. 数据看板:Echart的使用. 项目mock:后端未提

[转载]Vue 2.x 实战之后台管理系统开发(一)

2. 开发前须知 我的后台管理系统项目运用了如下框架/插件: Vue 2.x -- 项目所使用的 js 框架,我所使用的版本是:2.1.10 vue-router 2 -- Vue 2.x 配套路由,我所使用的版本是:2.3.0 Element -- UI 框架,饿了么出品,我所使用的版本是:1.2.8 Echarts -- 图表插件,百度出品,我所使用的版本是:3.4.0 在 UI 框架的选择上,除了 Element,iView 也不错,大家可以按需选择. 对于所使用的框架/插件,尽可能先快速

基于Vue+Spring MVC+MyBatis+Shiro+Dubbo开发的分布式后台管理系统

最近项目中使用了shiro做权限管理,在开发过程中也踩了一些坑,于是便有了开发个应用巩固一下所学知识的想法,正好在开发的过程里学习一下Vue开发. 技术栈方面,现在前后端分离大行其道,于是也采用了前后端分离的模式,前端基于Vue+Element,后端Web基于Spring MVC,用Dubbo提供分布式服务,前端可以部署到nginx,后端Web可以部署到Tomcat.Jetty或Undertow等Servlet容器,Dubbo服务可以作为独立的java进程运行,这种架构下,各层都比较容易实现横向

【共享单车】—— React后台管理系统开发手记:项目准备

前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. 一.项目概述       React全家桶 React基础知识.生命周期 Router 4.0 语法讲解 Redux集成开发      AnD UI组件 最实用基础组件 AntD栅格系统 ETable组件封装 BaseForm组件封装 表格内嵌单选.复选封装      公共机制封装 Axios请求

从零到一开发博客后台管理系统(二)

从零到一开发博客后台管理系统 1.今日计划完成 home页顶栏设计 home页tab标签页与左侧导航栏动态菜单联动 axios的封装 2.home页顶栏设计 只是用于显示标题,看起来干净一些 我们来编辑top.vue <template> <div> <span class="title">博客管理系统</span> </div> </template> .title { margin-left: 1.25rem;

简易版CMS后台管理系统开发流程

前言:最近公司做了几版后台管理系统,都不太满意.正好赶上51放假期间,我打算自己在花点时间做一个. 后台的界面设计,程序编写都是由我自己一个人来完成,如果有感兴趣的朋友可以和我一起来做. 开发环境是VS2013+MVC5+EF6 数据库采用Sql server2012 IIS7.5 制作工具HBuilder 今天先来看看搭建个大概框架放到下一章吧 下一章:FytMsys    系统框架搭建 有感兴趣的朋友可以加我群:86594082