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

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

作者: jiahzhon | 来源:发表于2019-11-05 20:59 被阅读0次
    • 路由的基本配置
      • 基本参数
        • path
          路由的访问路径。即url
        • component
          访问路径对应的组件
      • 扩展参数
        • name
          路由指定命名,设置后可用params传参及使用name进行路由跳转

    实现敲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
    • 路由的跳转
      • router-link标签跳转(相当于a标签)
      • 编程式导航
    // 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
    • 动态路由
      • 组件是同一个,只是通过不同的url参数渲染不同的数据
      • 路径参数"使用冒号":标记
      • 在path里显示声明后,通过params传参后,参数不丢失同时参数被设置成必传参数
    {
      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
    • 守卫导航
      • 通过router中的beforeEach注册全局守卫,每次切换路由是触发
        在main.js中写
    // to, from是路由对象,我们在路由⾥定义的参数都可以在这⾥取到,例如to.path或
    from.name
    router.beforeEach((to, from, next) => {
    // ...
    next()
    })
    

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

    相关文章

      网友评论

          本文标题:element实战三 单页面应用的控制中心-vue-router

          本文链接:https://www.haomeiwen.com/subject/ixuebctx.html