element实战三 单页面应用的控制中心-vue-router

2019-11-05  本文已影响0人  jiahzhon

实现敲localhost:8080/home展示home.vue内容

1.在src/router/index.js里(vue-cli3是一个放在外部的配置文件)

import Vue from 'vue'
import Router from 'vue-router'


Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/home' ,
      component: () => import('../views/Home.vue'),//懒加载
    }
  ]
})

2.要再app.vue中加:


image.png

原因:在main.js中


image.png
// route可以是对象,或者是字符串
// 对象的时候可通过路由的path或者name进⾏跳转
// 字符串的话只能是路由的path
this.$router.push(route)
// 路由传递参数, query和path配合, params和name配合
query: this.$router.push({path: '/', query: {id: 2}})
params: this.$router.push({name: 'home', params: {id: 2}})

1.点击home文件会跳转home.vue


image.png

2.用函数式编程实现


image.png
{
  path: '/home/:id',
  component: home
}

使用场景:依据用户不同ID跳转不同的页面


image.png image.png

这个时候输入“localhost:8080/home/123456”,会在页面中显示123456

// 在需要嵌套的路由中补充children字段
{
  path: '/home/:id',
  component: home,
  children: []
}

例子:实现在home.vue中展示child.vue中的内容
1:在home.vue中加<router-view>
2:


image.png
// to, from是路由对象,我们在路由⾥定义的参数都可以在这⾥取到,例如to.path或
from.name
router.beforeEach((to, from, next) => {
// ...
next()
})

to: 将进入的路由对象
from: 将离开的路由对象
next() 确认完成操作,最后一定要调用,不然路由就不会进行切换

上一篇下一篇

猜你喜欢

热点阅读