一口气拿下vue-router所有知识点,薪资暴涨3000

一 vue路由基础使用【固定路由的配置和使用】

首先我们展示一下router使用后的效果。

首先启动服务后,输入路由http://localhost:8080/#/A,到达页面A,展示页面A内容,点击页面上按钮或者将url切换为http://localhost:8080/#/B,到达页面B,展示页面B内容。

在这里插入图片描述

在这里插入图片描述

怎样配置

  1. 创建两个文件src/views/a.vue和src/views/b.vue,用来展示路由切换效果。
// src/views/a.vue
<template>
  <div>
    <h1>我是页面a</h1>
  </div>
</template>
// src/views/b.vue
<template>
  <div>
    <h1>我是页面b</h1>
  </div>
</template>
  1. 创建src/router/index.js文件,在src/router/index.js中引入router必要文件,导出router对象。

src/router/index.js文件代码示例如下。

import Vue from "vue";
import VueRouter from "vue-router";
import a from "../views/a.vue";
import b from "../views/b.vue";

// 注册路由插件
Vue.use(VueRouter);

// 定义路由规则
const routes = [
  {
   
    path: "/B",
    name: "A",
    component: a,
  },
  {
   
    path: "/B",
    name: "B",
    component: b,
  },
];

// 创建router对象
const router = new VueRouter({
   
  routes,
});

export default router;
  1. 在src/main.js中,在全局vue实例创建的时候,注入router对象。

src/main.js代码示例如下。

...
import router from "./router";
...
new Vue({
   
  router,
  ...
  render: (h) => h(App)
}).$mount("#app");

这一步做了什么呢,我们可以将vue实例打印出来,看一下router写入前后,vue实例有什么变化。

// src/main.js
const vm1 = new Vue({
   
  router,
  //   store,
  render: (h) => h(App),
}).$mount("#app");

const vm2 = new Vue({
   
  // router,
  //   store,
  render: (h) => h(App),
}).$mount("#app");

console.log(vm1, vm2);

我们写了两个不同的Vue实例,两者唯一的区别是有无注入router,将它们打印出来后对比一下,可以看到,注入router的vue实例中增加了几个router相关的属性, r o u t e r 和 router和 routerroute属性被赋值。
在这里插入图片描述

请添加图片描述

点击打开后可以看到, r o u t e r 中 有 一 些 路 由 相 关 的 方 法 , router中有一些路由相关的方法, routerroute中有当前路由的信息。

## 图5 图6
在这里插入图片描述

这些信息已经挂载到了全局vue实例上,在页面中就可以直接使用了。

  1. 在App.vue中对应位置添加<router-view/>标签,该标签为路由组件的占位符,路由切换时,该标签会被替换成对应的路由组件。就达到了我们想要的效果。

在切换路由时,我们可以通过点击<router-link />标签或者手动更改url的方式进行页面切换,下面是一个带有<router-view/>标签和<router-link />标签的代码示例。

这里我们为router-link标签写上了一些样式,使展示更加美观。

<template>
  <div id="app">
    <router-link class="a" to='A'>跳往页面A</router-link>
    <router-link class="b" to='B'>跳往页面B</router-link>
    <router-view />
  </div>
</template>

<style>
.a,.b {
     
 border: 1px solid #42b983;
 padding: 5px 10px;
 margin: 5px;
 margin-top: 300px;
 color: #42b983;
}</style>

怎样控制路由跳转

刚刚介绍了路由在html中使用标签进行跳转,但有时我们希望在js中跳转,该怎样操作呢?这就用到上面挂载在vue实例上的$router。代码示例如下。

this<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值