zoukankan      html  css  js  c++  java
  • Vue路由机制

    Vue路由机制:通过组合组件来组成单页面应用(SPA)。将组件 (components) 映射到路由 (routes),然后告诉 Vue Router 在页面哪里渲染它们。

    (1)组件

    (2)路由-组件映射表

    (3)创建VueRouter,并传入映射关系(routes配置)

    (4)路由参数(router配置)注入Vue实例

     1 // 0. 如果使用模块化机制编程,导入Vue和VueRouter,要调用 Vue.use(VueRouter)
     2 
     3 // 1. 定义 (路由) 组件。
     4 // 可以从其他文件 import 进来
     5 const Foo = { template: '<div>foo</div>' }
     6 const Bar = { template: '<div>bar</div>' }
     7 
     8 // 2. 定义路由
     9 // 每个路由应该映射一个组件。 其中"component" 可以是
    10 // 通过 Vue.extend() 创建的组件构造器,
    11 // 或者,只是一个组件配置对象。
    12 // 我们晚点再讨论嵌套路由。
    13 const routes = [
    14   { path: '/foo', component: Foo },
    15   { path: '/bar', component: Bar }
    16 ]
    17 
    18 // 3. 创建 router 实例,然后传 `routes` 配置
    19 // 你还可以传别的配置参数, 不过先这么简单着吧。
    20 const router = new VueRouter({
    21   routes // (缩写) 相当于 routes: routes
    22 })
    23 
    24 // 4. 创建和挂载根实例。
    25 // 记得要通过 router 配置参数注入路由,
    26 // 从而让整个应用都有路由功能
    27 const app = new Vue({
    28   router
    29 }).$mount('#app') 

    页面渲染(HTML)

     1 <div id="app">
     2   <h1>Hello App!</h1>
     3   <p>
     4     <!-- 使用 router-link 组件来导航. -->
     5     <!-- 通过传入 `to` 属性指定链接. -->
     6     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
     7     <router-link to="/foo">Go to Foo</router-link>
     8     <router-link to="/bar">Go to Bar</router-link>
     9   </p>
    10   <!-- 路由出口 -->
    11   <!-- 路由匹配到的组件将渲染在这里 -->
    12   <router-view></router-view>
    13 </div>

    (4)页面涉及路由的两种形式:

      嵌套路由:通过routes里的children参数配置实现

      同级布局:通过routes里components参数和<router-view>的name实现

    1 <!-- UserSettings.vue -->
    2 <div>
    3   <h1>User Settings</h1>
    4   <NavBar/>
    5   <router-view/>
    6   <router-view name="helper"/>
    7 </div>
     1 {
     2   path: '/settings',
     3   // 你也可以在顶级路由就配置命名视图
     4   component: UserSettings,
     5   children: [{
     6     path: 'emails',
     7     component: UserEmailsSubscriptions
     8   }, {
     9     path: 'profile',
    10     components: {
    11       default: UserProfile,
    12       helper: UserProfilePreview
    13     }
    14   }]
    15 }

    (4)API

      this.$router ---  访问路由器;

      this.$router.push()  路由器跳转,有history 记录;

      this.$router.replace() 路由器跳转,无history 记录;

      this.$router.go(n)  在 history 记录中向前或者后退多少步

      this.$route --- 访问当前路由;

      this.$route.params --- 当前路由携带参数;

  • 相关阅读:
    Android入门第六篇之ListView (一)
    STL 二分查找三兄弟(lower_bound(),upper_bound(),binary_search())
    fastjson 之常见的数据类型与json的相互转换
    Jetty:配置安全
    xml文件格式例如以下
    《编程珠玑》---笔记。浏览此文,一窥此书。
    【Github教程】史上最全github用法:github入门到精通
    SSL连接建立过程分析(1)
    ant 安装
    GMM的EM算法实现
  • 原文地址:https://www.cnblogs.com/psy-fei/p/12756077.html
Copyright © 2011-2022 走看看