vue-route使用

2025-01-05 06:36:33

1、这里有两条路由,组成一个routes:

vue-route使用

2、最后创建router 对路由进行管理,它是由构造函数 new vueRouter() 创建,接受routes 参数。

vue-route使用

3、配置完成后,把router 实例注入到 vue 根实例中,就可以使用路由。

vue-route使用

4、执行过程:当用户点击 router-link 标签时,会去寻找它的 to 属性, 它的 to 属性和 js 中配置的路径{ path: '/home', component: Home} path 一一对应,从而找到了匹配的组件, 最后把组件渲染到 <router-view> 标签。所有的这些实现才是基于hash 实现的。vue-cli 创建一个项目体验一下, 当然不要忘记安装vue-router1, 在src 目录下新建两个组件,home.vue 和 about.vue

vue-route使用

5、2, 在 App.vue中 定义<router-link > 和 </router-view>

vue-route使用

6、3, 在 src目录下再新建一个router.js 定义router, 就是定义 路径到 组件的 映射。

vue-route使用

7、4, 把路由注入到根实例中,启动路由。这里其实还有一种方法,就像store 注入到根实例中,可以在main.js中引入路由,注入到根实例中。

vue-route使用

8、5, 这时点击页面上的home 和about 可以看到组件来回切换。当首次进入页面的时候,页面中并没有显示任何组件。想让页面一加载进来就显示home页面,这需要重定向,所谓重定向,其实就是重新给它指定一个方向,比如当用户点击home 的时候,我们让它指向about.这用到了redirect 配置。刚进入页面的时候,它的路径是 '/', 所以重新定义到home

vue-route使用

9、6, 打开浏览器的控制台,可以看到路由时组件的切换。首先看到 router-link 标签渲染成了 a 标签,to 属性变成了a 标签的 href 属性,这时就明白了点击跳转的意思。router-view 标签渲染成了定义的组件。可以对比一下app.vue 中的标签和控制台中的标签

vue-route使用

10、动态路由不同的用户(就是用户的id不同),它都会导航到同一个user 组件中。在配置路由的时候,就不能写死, 就是路由中的path属性,不能写死。如 path: “/home”,只有是home的时候,才能显示home 组件,执行的是严格匹配。导航到 user 组件,路径中肯定有user,id 不同,那就给路径一个动态部分来匹配不同的id. 动态部分 以 : 开头,那么路径就变成了 /user/:id, 这条路由就可以这么写: { path:"/user/:id", component: user }.再定义一个user组件,页面中添加两个router-link 用于导航, router.js中添加路由配置。user组件随便写一个就好了。app.vue 更改如下:

vue-route使用

11、在动态路由中,想知道路由是从哪里过来的,就是获取到动态部分怎么办。 当整个vue-router 注入到根实例后,在组件的内部,可以通过this.$route.params 来获得这个动态部分的。它是一个对象,属性名,就是路径中定义的动态部分 id, 属性值就是router-link中to 属性中的动态部分,如123。 在组件中,如果想要获取到state 中的状态,我们可以用computed 属性,在这里也是一样,在组件中,定义一个computed 属性dynamicSegment, user 组件修改如下:

vue-route使用
猜你喜欢