vue-router基本使用

vue-router的实现原理

路由不同的页面也就是加载不同的组件。

路由的三个基本概念

  1. router:它是一条路由,test按钮 => test内容,这是一条route,test1按钮 => test1内容,这是另一条路由。
  2. routers:它是一组路由,把上面的每一条路由组合起来,形成一个数组。[{test按钮 => test内容}, {test1按钮 => test1内容}]。
  3. router:它是一个机制,想当于一个管理者,它来管理路由。当用户点击test按钮时,router去routes中查找,找到对应的test内容。
  4. 客户端中的路由,实际上就是dom元素得显示和隐藏。当页面中显示test内容的时候,其他内容全部隐藏,反正也是一样

vue-router中的路由基于以上4点实现:

  • 在vue中我们所有的内容都是组件化的,所有只需要把路径和组件对应起来,然后在组件中把页面渲染出来就可以了。

通过npm安装vue-router

npm install --save vue-router

在main.js中使用Vue.use()加载插件

important Vue from 'vue
important VueRouter from 'vue-router'

Vue.use(VueRouter)

页面实现

  • 在vue-router中,由两个标签和来对应点击和显示部分; 就是定义页面中点击的部分, 定义显示部分,就是在点击后匹配的内容显示在什么地方;还有一个非常重要的属性to,定义点击之后跳到哪里去。

路由配置

  1. 首先定义route,它是一个对象,由两部分组成:path、component;path指路径,component指组件;
const routes = [
  { path: '/home', component: Home },
  { path: '/list', component: List }
]
  1. 创建router对路由进行管理,由构造函数new vueRouter()创建,接收routes参数
const router = new VueRouter({
  routes: routes   // routers简写
})
  1. 配置完成后把router实例注入到vue根实例中,开始使用
const app = new Vue({
  router
}).$mount('#app') //相当于 el:"#app"

执行过程
当点击router-link标签时,会寻找它的to属性,它的 to 属性和 js 中配置的路径{ path: ‘/home’, component: Home} path 一一对应,从而找到了匹配的组件, 最后再把组件渲染到 标签所在的地方。

案例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <b>vue-router的基本使用</b>
    <br>
    <br>
    <div id="app">
        <p>
            <!-- 
                router-link是vue-router提供的组件
                作用:让用户进行组件的切换  显示和隐藏
                跳转到哪个组件  是有to来控制
                router-link 最后被解析成了a标签  相当于tab栏切换里面的tab-bar
             -->

            <router-link to="/foo">易烊千玺</router-link>
            <router-link to="/bar">魏晨</router-link>
            <router-link to="/fa">神偷奶爸</router-link>

        </p>
        <!-- 路由出口 -->
        <!-- 路由匹配到的组件将渲染在这里 -->
        <!-- 相当于一个占位符  tab-content -->
        <router-view></router-view>
    </div>

</body>

</html>
<!-- vue必须在vue-router之前导入 -->
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<!-- vue-router是vue.js的插件  依赖于vue -->
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<script>
    /*
    路由
    后端路由   说的就是url和后端逻辑的对应关系
    前段路由   说的就是url和组件的对应关系
    router-link和router-view都是vue-router提供的组件
    */ 

    // 1. 定义 (路由) 组件。
    const Foo =Vue.component("foo",{ template: '<div><img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2827900117,2392771513&fm=26&gp=0.jpg" /></div>' }) 
    const Bar =Vue.component("bar",{ template: '<div><img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=3886288723,4137600703&fm=26&gp=0.jpg" /></div>' }) 
    const Fa = Vue.component("fa",{ template: '<div><img src="https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=2793086552,1942022292&fm=26&gp=0.jpg" /></div>' })

    // 2. 定义路由
    // 就是url跟组件的对应关系
    const routes = [
        { path: '/foo', component: Foo },
        { path: '/bar', component: Bar },
        { path: '/fa', component:Fa}
    ]

    // 3. 创建 router 实例,然后传 `routes` 配置
    // 你还可以传别的配置参数, 不过先这么简单着吧。
    const router = new VueRouter({
        // 这里使用的是简化赋值  所以key必须是routes
        // 传入路由规则
        routes // (缩写) 相当于 routes: routes
    })

    // 4. 创建和挂载根实例。
    // 将router对象和顶级vue实例化进行关联 ===> 挂载到顶级的vue实例上
    const app = new Vue({
        el : "#app",
        router
    })
    // .$mount('#app')  等同于 el : "#app"
</script>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值