vue-router的技巧,结合https://github.com/wdlhao/vue2-element-touzi-admin项目

152 阅读1分钟

这里有一个hidden参数,通过判断路由对象里面的hidden值选择是否渲染该路由入口,然而你在路由视图里面是无法通过$route.hidden来取得路由对象的hidden属性的,因为路由渲染的时候会把无关的字段忽略掉。说到底这个只是一个判断路由入口是否可见的开关而已。

{ path: '/login',name: 'login',component:() => import('@/page/login'),hidden: true},

使用时
<router-link v-if="!item.hidden && item.noDropdown" :to="item.path+'/'+item.children[0].path" :key="index">

// import语法实现路由懒加载 打包时拆分,这样就不会首屏加载很慢,官网有介绍,还可以用压缩的方式
这就是如何定义一个能够被 Webpack 自动代码分割的异步组件。

const Foo = () => import('./Foo.vue')

const router = new VueRouter({
  routes: [
    { path: '/foo', component: Foo }
  ]
})

有些代码里面会写成

component: () => import('@/page/errorPage/401')

这个框架里面要注意学习布局方式,尤其是宽度和高度,这个里面的下面的div没有设置宽度,以此来实现自动拉宽,它里面的div用的是100%,注意这个div要向右移动menu的宽度,一般都是要absolute来 移动。

menu_right

块状元素有一个特点之一:在不设置宽度的情况下,显示为父容器的100%.父容器的100%

让所有弹性盒模型对象的子元素都有相同的长度,忽略它们内部的内容:

#main div

{

flex:1;

}

这里为打包后自动打开浏览器
devServer: {
// 这里为打包后自动打开浏览器
open: true,
注意如何国际化,使用国际化插件vue-i18n 数据渲染
官网
kazupon.github.io/vue-i18n/zh…
www.cnblogs.com/scode2/p/90…
{{ $t(‘index.yearLoss’) }}

权限设置
两种方法,一是请求后端获取json,取出来放到el-menu的index里 ,注意这里要通过标签来传入权限状态值,来控制组件里面的部分标签不显示。
二是前端使用vuex来管理router 使用addrouter来动态管理,默认是无需权限的,需要权限的,需要获roles来动态配置。