vue路由

动手理解导航守卫(Vue)

一曲冷凌霜 提交于 2019-12-03 07:37:57
本文转载于: 猿2048 网站➽ https://www.mk2048.com/blog/blog.php?id=h22i2bjchj 最近不是很忙,把自己不会的技术点看了一遍文档,然后动手敲了一下代码,加深自己理解。通过实战Demo,调试,结果分析,理解了官网的知识点。记录下来,第一是方便自己加深理解,第二是后续可以回顾,第三可以帮助像我这种小白的人一起学习。 导航就是我们说的路由,当路由发生变化的时候,我们想要做的事情,这就是导航守卫的重点。 路由改变的函数我们写到项目的哪个位置,代码写哪个地方,这个就是 官网 上说的( 全局守卫,路由独享的守卫,组件内的守卫 ),下面一一介绍: (一)全局守卫: 用来监测所有的路由,代码写在路由页面(router.js) 方法有: router.beforeEach((to, from) => { // ... }) router.afterEach((to, from) => { // ... }) to,from,next三个参数都是必要的 to: 即将要进入的目标 路由对象 from: 当前导航正要离开的路由 next:一定要调用该方法来 resolve 这个钩子,如果不写next()或者next(false),页面路由不会跳转,也就是页面被阻止在当前页面了 to,from是一个对象,就是routes[]

Vue-router的使用姿势

和自甴很熟 提交于 2019-12-03 07:20:46
本文转载于: 猿2048 网站➦ https://www.mk2048.com/blog/blog.php?id=h2j2hk0bbb 虽然有很多 router 的相关文章了,但是那又怎么样,我就是要写。 欢迎来我的Vue技术群交流: 887516034 其实vuejs有一个叫做动态组件的东西,效果和路由有点相似,根据需求显示不同的组件,但是在实际使用上,很小气,就给人玩不爽,没办法像路由一样编程式导航( push , replace ),也没有浏览器路径的语义引导,动态组件更适合小规模的局部tab,给大家秀一波用法 <template> <div> ul>li>tab1+tab2 @click="" <!-- >>>此处改变下面data中的tab值就可以切换了 --> <!-- 此处相当于router-link效果,虽然没有浏览器的url引导,但是可以自己写面包屑 --> <component :is="tab"></component> <!-- 这里就是router-view显示区了 --> </div> </template> <script> import tab1 from 'path/to/tab1.vue' //相比vue-router要引入很多文件 麻烦 import tab2 from 'path/to/tab2.vue' //其实vue-router也引入文件

Vue路由和Vuex

拜拜、爱过 提交于 2019-12-03 07:00:38
vue 路由 vue-router2 注意:vue-router2@2.x只适用于Vue2.x版本 安装 1.你也可以用 <script src="../js/vue-router.js"></script> 引入这种方式,但一般用倾向于用webpack模块化的方法 2. npm install vue-router@2.7.0 --save-dev ,为了让package.json中打上一个log,后面加上--save-dev 如果在一个模块化的工程中使用,必须通过Vue.use()明确的安装路由功能,例如 import Vue from 'vue'; import VueRouter from 'vue-router'; Vue.use(VueRouter) 如果使用全局的script标签,则无需如此(手动安装) 重定向 重定向也是通过routes配置来完成,下面就是/a到/b const router = new VueRouter({ routes:[{ path:'/a',redirect:'/b' }] }) 重定向也可以是命名的路由,在routes中给每一个 const router = new VueRouter({ routes:[{ path:'/a',redirect:{name:'foo'} }] }) 或者一个方法 const router = new

Vue-Router的使用(一) --- 快速开始

雨燕双飞 提交于 2019-12-03 05:30:53
  使用Vue路径实现动态挂载组件。将使用过程步骤化,方便自己后续的使用。快速开始Vue Router的步骤 一、安装Vue Router插件   cmd切换到项目目录。执行c npm install vue-router --save。 Vue Router 官网: https://router.vuejs.org/zh/installation.html    二、在main.js中使用Vue Router组件   在main.js中添加如下红色框内的代码:    三、配置路由   配置路由分为4个步骤: 定义 (路由) 组件、 定义路由、 创建 router 实例、 创建和挂载根实例。这四步可以全部卸载main.js中,也可以使用模块化将这四步单独写在一个模块中,最后import到main.js中挂载 3.1 定义 (路由) 组件   路由组件可以是直接定义,也可以是导入已经定义好的组件。这里导入已经定义好的组件。如下    3.2 定义路由( 路由对象数组 )   定义 路由对象数组 。对象的path是 自定义的路径(即使用这个路径可以找到对应的组件) ,component是指该路由对应的组件。如下:    3.3 实例化Vue Router对象   调用Vue Router的构造方法创建一个Vue Router的实例对象,将3.2步定义的路由对象数组作为参数对象的值传入

vue-router总结

痴心易碎 提交于 2019-12-03 01:32:00
一、文件目录说明 main.js:应用的入口文件【js文件入口】 App.vue:根组件,整个组件的入口【组件文件入口】 new Vue({}); //Vue是构造函数,本质上是一个函数,函数就有原型prototype 加载文件不要后缀名: resolve:{ extensions:['.js','.vue','.json'], alias:{ 'vue$':'vue/dist/vue.esm.js', '@':resolve('src') //@就代表了"src"这个目录 } } import App from './App'; 就相当于 './App.vue'; import router from './router' //加载某个目录下的index.js文件,可以简写,就相当于 './router/index.js' .gitignore 上传git仓库的时候,不上传某些文件,比如node_modules,因为太大了, 所以从git仓库clone文件下来的时候,首先就是要npm install,安装package.json里面定义的依赖包 然后就是npm run dev index.js文件,定义路由(默认导出) export default new Router({}) 也可以: let router = new Router({}) //先定义,下面导出

关于解决vue路由不起作用的解决方案

匿名 (未验证) 提交于 2019-12-03 00:39:02
最新学习vue js,发现路由配置后不起作用,每次都是重定向到首页,多次怀疑是路由写错了, 后来发现vue默认情况下,访问子组件需要在uri后面添加#再加路由path值才可以,后来发现需要在路由文件里面设置 history就没问题了。 // 引用模板 import Vue from 'vue'; import Router from 'vue-router'; import Hello from '../components/Hello.vue' import About from '../components/About.vue' Vue.use(Router) export default new Router({ mode:'history', routes:[ { path:'/', component:Hello }, { path:'/about', component:About } ] }) 文章来源: 关于解决vue路由不起作用的解决方案

用addRoutes实现动态路由

匿名 (未验证) 提交于 2019-12-03 00:37:01
之前在 基于Vue实现后台系统权限控制 一文中提到路由权限的实现思路,因为不喜欢在每次路由跳转的before钩子里做判断,所以在初始化Vue实例前对路由做了筛选,再用实际路由初始化Vue实例,代价是登录页需要从Vue实例中独立出来,实现上倒没什么问题,不过这种做法需要在登录和首页之间通过url跳转,感觉总是不太”优雅”,实际上只要能在登录后动态修改当前实例的路由就行了,之前确实没办法,但vue-router 2.2版本新增了一个 router.addRoutes(routes) 方法,让动态路由得以实现。 用动态路由实现路由权限控制貌似是一个完美的方案,初始路由只有登录和404,登录后动态添加可用路由,同时将菜单数据保存到Vuex或本地用于实现动态菜单,关键节点大致如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 //初始路由: [{ path: '/login', name: 'login', component: (resolve) => require(['../views/common/404.vue'], resolve) }, { path: '/404',

vue路由嵌套子路由不渲染

匿名 (未验证) 提交于 2019-12-03 00:37:01
1、路由嵌套,vue2.0 router中嵌套路由不成功 我先说下我的需求,例如下图 我本来是想打算将中间的模块做一层子路由(test模块),模块代码没错,每次编译都正常好使, 但是打开编译后的文件之后,一直都是==只能渲染一级路由,子路由没有效果,==,查了一推资料, 帖子说:子路由多写了/, 会默认从根目录开始匹配,我试着也删除掉这些东西, 但是后来发现,我的问题并不是这个原因造成的, 原因在于,在子模块里面引用子路由,也是需要这个, < router-view> </ router-view> 1 而我恰好又没有,在子模块 template 中加上即可! 原文:https://www.cnblogs.com/lcosima/p/9230588.html

vue 路由懒加载 resolve vue-router配置

匿名 (未验证) 提交于 2019-12-03 00:34:01
使用方法 component:resolve => require(['@/pages/About'],resolve) 懒加载 router/index.js import Vue from 'vue' import Router from 'vue-router' Vue.use(Router) export default new Router({ mode:'history', routes: [ { path:'/', redirect:'/index' }, { path: '/about', name: 'About', component:resolve => require(['@/pages/About'],resolve) }, { path: '/index', name: 'Index', component:resolve => require(['@/pages/Index'],resolve) }, { path: '/product', name: 'Product', component:resolve => require(['@/pages/Product'],resolve) } ] }) 非懒加载 router/index.js import Vue from 'vue' import Router from 'vue-router'

vue路由

匿名 (未验证) 提交于 2019-12-03 00:34:01
vue路由 一、vue关于路由的5个重要对象 1、router-view:类似angular中的router-outlet,router-view会不断的改变成要展示的组件; 2、router-link:直接使用该标签进行标签导航,会被渲染成a标签; 3、routes: 数组,在该数组中配置所有的路由; 4、router:通过router,进行方法导航,方法有push(),replace()(不会有历史记录),go()(有历史记录才可以使用); 5、route: 类似angular中的activatedRoute,获取传过来的参数。 二、路由传参 路由传参有2种方式:router-link导航传参与方法导航传参 1、router-link导航传参有2种方式: A、通过query传参,header组件向product组件传参,举例如下: header.vue <router-link :to="{name:'product',query:{productName:'苹果手机'}}">展示商品方法一:query传参</router-link> product.vue <p class="showProduct">商品名称(接收header组件的query传值):{{getProductNameByQuery}}</p> computed: { // 计算属性