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 --- 当前路由携带参数;

  • 相关阅读:
    mysql启动错误
    maven环境变量配置
    记一次服务器Tomcat优化经历
    自动定时备份删除脚本
    Tomcat网页加载速度过慢的解决方法
    tomcat运行war包报错,找不到context-root文件
    maven下配置pom.xml
    [LeetCode]题解(python):116-Populating Next Right Pointers in Each Node
    [LeetCode]题解(python):115-Distinct Subsequences
    [LeetCode]题解(python):114-Flatten Binary Tree to Linked List
  • 原文地址:https://www.cnblogs.com/psy-fei/p/12756077.html
Copyright © 2011-2022 走看看