程序员必知:VueRouter爬坑第四篇

简介: 程序员必知:VueRouter爬坑第四篇

VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建。

项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送

后续VueRouter系列的文章的示例编写均基于该项目环境。

VueRouter系列文章链接

  《VueRouter爬坑第一篇-简单实践》

  《VueRouter爬坑第二篇-动态路由》

  《VueRouter爬坑第三篇-嵌套路由》

  《VueRouter爬坑第四篇-命名路由、编程式导航》

阅读目录

一.前言

二.命名路由

三.编程式导航

四.命名路由+$router.push

一.前言

  前面三篇VueRouter系列文章,第一篇我们先是对路由做了一个简单的实践。

  第二篇实践了动态路由的使用;

  第三篇实践了嵌套路由的使用场景和用法;

  本篇文章将实践一下命令路由和编程式导航这两个名词所涵盖的技术点。

二.命名路由

  命名路由,字面意思就是给路由起个名字。

  那给路由起了名字有什么作用呢?

  前面几篇文章中,我们配置的to属性值时,设置的是routes中的path。

  那么当我们给路由配置名称后,这个to属性的值就可以设置为路由的名称。

  我们接着上一节演示的那个场景示例,将其使用嵌套路由进行重写。

1.给路由配置名称

  首先呢,我们先在router.js中给路由添加名称

E:\MyStudy\test\VueDemo\src\router\router.js

1 import Vue from "vue"

2 import Router from "vue-router"

3 Vue.use(Router)

4

5 // 引入路由需要映射的组件

6 import Content from '@/components/Content.vue'

7 import ProductDetail from '@/components/ProductDetail.vue'

8 const routes = 【

9 {

10 path: '/products',

11 name: 'productsRoute', // 给路由配置名称

12 component: Content,

13 children:【

14 {

15 path: '/productDetail/:id',

16 name: 'productDetailRoute', // 给路由配置名称

17 component: ProductDetail

18 }

19 】

20 }

21 】

22

23 const router = new Router({

24 routes: routes

25 })

26

27 export default router

  新增的代码为:11行和16行。

  可以看到,为路由配置名称的语法就是在单条路由配置中添加name属性即可。

2.重写组件中的路由跳转代码

  给路由配置名称后,接着需要做的事情就是修改组件中路由跳转的代码。

  先修改App.vue组件中的路由跳转代码

E:\MyStudy\test\VueDemo\src\App.vue

1 [/span>template

2 [/span>div id="app"

3

4 [/span>ul

5 [/span>li v-for='(item,index) in menuList' v-bind:key='index'

6 [/span>router-link v-bind:to='{name: item.routeName}'

7

8

9

10 [/span>router-view />

11

12

13

14 [/span>script

15 export default {

16 name: 'App',

17 data() {

18 return {

19 menuList: 【

20 {

21 url: '/index',

22 name: '首页',

23 routeName: 'indexRoute',

24 },{

25 url: '/products',

26 name: '产品',

27 routeName: 'productsRoute',

28 }

29 】

30 }

31 }

32 }

33

34

35 [/span>style

36 #app {

37 font-family: 'Avenir', Helvetica, Arial, sans-serif;

38 -webkit-font-smoothing: antialiased;

39 -moz-osx-font-smoothing: grayscale;

40 color: #2c3e50;

41 }

42 ul {

43 display: inline-block;

44 Width</span>: 100px;

45 border: 1px solid #ddd;

46 padding: 100px 0px 100px 20px;

47 position: fixed;

48 top: -10px;

49 bottom: 0px;

50 }

51 a{

52 text-decoration: none;

53 }

54

  App组件中,修改的代码在第6行,同时新增了22行、26行两行代码。

  核心的代码如下:

[/span>router-link v-bind:to='{name: item.routeName}'

  接着是Content.vue组件

E:\MyStudy\test\VueDemo\src\Components\Content.vue

1 [/span>template

2 [/span>div class='productContent'

3 [/span>div class="productList"

4

5 [/span>h1

6 [/span>p v-for="(item,index) in productsList" v-bind:key='index'

7 [/span>router-link v-bind:to="{name: item.routeName,params:{id:index+1}//代码效果参考:http://www.ezhiqi.com/zx/art_4512.html }"

8

9

10

11 [/span>router-view />

12

13

14 [/span>script

15 export default {

16 name: 'Content',

17 data() {

18 return {

19 productsList: 【

20 {

21 url: '/productDetail/1',

22 name: '产品1',

23 routeName: 'productDetailRoute

相关文章
|
3月前
|
JavaScript 前端开发 编译器
看完这篇文章,不再害怕Vue3的源码(一)
看完这篇文章,不再害怕Vue3的源码
|
3月前
|
缓存 JavaScript 前端开发
看完这篇文章,不再害怕Vue3的源码(二)
看完这篇文章,不再害怕Vue3的源码
|
3月前
|
缓存 前端开发 JavaScript
【面试题】金九银十,你准备好面试了吗? (30w字前端面试题总结)( React)
【面试题】金九银十,你准备好面试了吗? (30w字前端面试题总结)( React)
153 0
|
2月前
VueRouter爬坑第一篇-简单实践
VueRouter爬坑第一篇-简单实践
|
3月前
|
JavaScript 前端开发 API
看完这篇文章,不再害怕Vue3的源码(三)
看完这篇文章,不再害怕Vue3的源码
|
前端开发
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-前端洋葱圈模型
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-前端洋葱圈模型
69 0
|
存储 前端开发 JavaScript
人人都是前端架构师:我来带你阅读 React18 源码!
人人都是前端架构师:我来带你阅读 React18 源码!
381 0
|
存储 JavaScript 前端开发
纯手硬撸Redux
当今不管作为一个前端小白还是一个资深的前端攻城狮。如果不掌握几种前端框架(React,Vue,ng),都不好意思出去说自己是做前端。但是面对如此之多的前端框架,尤其是React、Vue这种纯负责UI展示的架子来说。有一件事是绕不开的就是前端的数据存储问题。 作为业界层出不穷的数据处理框架Redux(React的数据存储框架)又是不得不提起的。 Vue的数据处理一般用Vuex。但是他的设计思路都是基于Redux等。 所以,有必要看看Redux是如何实现数据存储,又如何使得存储的数据被组件获取,并且组件在触发CRUD的时候,能够及时更新数据呢。 我们就按照Redux的实现原理来剖析一下这些数据存储
纯手硬撸Redux
|
JavaScript 前端开发 程序员
做为前端面试官,春招跳槽建议你把这20个vue题目搞懂
做为前端面试官,春招跳槽建议你把这20个vue题目搞懂
109 0
|
前端开发 JavaScript 算法
js 语法基础送给想要转行前端的小伙伴们
单行注释:// 内容 在网页中按F12可以看到控制台(console)和对所写的代码进行调试。
67 0