zoukankan      html  css  js  c++  java
  • vue三十二:Vue-Router之一级路由配置

    Vue-Router
    Vue-Router是用来将一个Vue程序的多个页面进行路由的。比如一个Vue程序(或者说一个网站)有登录、注册、首页等模块,那么我们就可以定义/login、/register、/来映射每个模块。

    安装:
    通过script加载进来:<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>。
    通过npm安装:npm install vue-router。
    官方文档:https://router.vuejs.org/zh/。
    github地址:https://github.com/vuejs/vue-router。
    安装和使用说明:https://router.vuejs.org/zh/installation.html
    下载地址:https://unpkg.com/vue-router@3.1.6/dist/vue-router.js

    基本使用:
    1. 创建一个`VueRouter`对象:`new VueRouter()`。
    2. 在`VueRouter`中,需要传递一个`routes`参数。这个参数是一个数组类型,数组中存储的是对象,对象中最少要有两个属性,一个是`path`,代表`url`,第二个是`component`,代表数据更新的组件。示例代码如下:
    ```js
    let router = new VueRouter({
      routes: [
        {path: "/",component: index},
        {path: "/find",component: find},
        {path: "/friend",component: friend}
      ]
    })
    ```
    3. 将`router`传给`Vue`。
    4. 把网页中之前的`a`标签,替换成`router-link`。
    5. 使用`router-view`指定网页中哪个地方要被更新。

    准备3个组件

    在src文件夹下,创建router.js,实例化Router并配置路由映射

    在主入口main.js中注册router

    访问路由,失败

    是因为只映射了要加载的组件,但是没有指定加载位置,在根组件app中,预留路由容器:router-view

    Film

    <template>
    <div>
    film
    </div>
    </template>

    <script>
    export default {
    name: "Film"
    }
    </script>

    <style scoped>

    </style>

    Cinema

    <template>
    <div>
    cinema
    </div>
    </template>

    <script>
    export default {
    name: "Cinema"
    }
    </script>

    <style scoped>

    </style>

    Center

    <template>
    <div>
    center
    </div>
    </template>

    <script>
    export default {
    name: "Center"
    }
    </script>

    <style scoped>

    </style>

    router.js

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

    // 导入组件
    import Film from "@/views/Film"; // 导入Film组件,@符号是指向src文件夹
    import Cinema from "@/views/Cinema";
    import Center from "@/views/Center";

    Vue.use(Router) // 注册路由插件vue-router

    // 实例化Router组件
    const router = new Router({
    routes: [
    {path: '/film', component: Film}, // 访问的前段资源是/film开头的路径,加载Film组件
    {path: '/cinema', component: Cinema}, // 访问的前段资源是/cinema开头的路径,加载Cinema组件
    {path: '/center', component: Center} // 访问的前段资源是/center开头的路径,加载Center组件
    ]
    })
    export default router // 导出router实例

    main.js

    import Vue from 'vue'
    import App from './App.vue'
    import router from "./router"; // 导入router.js

    Vue.config.productionTip = false

    new Vue({
    // router: router, // 注册router,名字取为router,此时注册名和实例名一致,可以直接写一个router
    router,
    render: h => h(App),
    }).$mount('#app')

    app

    <template>
    <div>
    hello vue

    <!-- 路由容器 -->
    <router-view></router-view>

    </div>
    </template>

    <script>

    export default {
    data() {
    return {}
    },
    }
    </script>

    <style lang="scss">

    </style>
    讨论群:249728408
  • 相关阅读:
    editable : false与 readonly 的区别
    Ubuntu环境下使用Jupyter Notebook查找桌面.csv文档的方法
    实验01——java模拟银行ATM系统
    Wannafly挑战赛26 御坂网络
    Wannafly挑战赛29 御坂美琴(递归,模拟)
    牛客练习赛31 龙魂合一萨坎与晶石
    牛客练习赛31
    Codeforces Round #520 (Div. 2)A. A Prank
    (花里胡哨)New Game!(牛客国庆集训派对Day1)
    Educational Codeforces Round 54 (Rated for Div. 2)A. Minimizing the String(签到题)
  • 原文地址:https://www.cnblogs.com/zhongyehai/p/12393711.html
Copyright © 2011-2022 走看看