vue--路由安装使用2---($route和$router)

在这里插入图片描述

vue路由

npm i vue-router # 安装路由插件

当我们使用了路由组件之后【即 Vue.use(VueRouter)】会自动的注册两个全局组件到项目中

router-link,是用来生成a标签的组件,做页面跳转

router-view,是用来展示路由对应的内容的组件,所有的路由地址访问时对应的内容都在组件范围内显示

使用
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const router = new VueRouter({
    routes: [....] // 定义一个路由内容
})

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

每一个路由对应的页面中都会包含一些路由属性
  • $route

    表示当前的路由信息,有path,params,query等参数信息

  • $router

    是一个vue的路由对象,里面包含有一个路由的常见方法,比如push,replace,add等

$route的传参      
this.$router.push({name:'查看主题',params:{themerow:row}})
调用参数
{{$route.params.themerow.applyUserNm}}

$route
在这里插入图片描述

先安装命令 npm i vue-router
然后在main.js文件中进行添加 如下图
在这里插入图片描述
npm run build → 生成更新dist目录
npm run serve → 执行运行 跟随链接localhost:8080或者 在dist目录里双击打开index.html页面

main.js

import Vue from "vue";
import VueRouter from "vue-router"; // 从vue文件夹下面的router中引入,
import App from "./App.vue";
// 1️⃣方法一
import Home from "./pages/Home";

Vue.config.productionTip = false;
Vue.use(VueRouter); // 使用路由,会帮我们在页面中自定义两个组件,全局注册的,一个是router-link,使用来生成a标签的,一个是router-view,是用来展示组建的内容的,路由所有对应的内容都是在router-view里面展示的,路由跳转之后的组件页面内容都在此处进行展示

// 定义一个路由实例
const router = new VueRouter({
  // routes:[...]表示路由配置表
  routes: [
    {
      path: "/", // 路径,就是url中访问的地址
      name: "H", // 名字,就是我为这个路由设置一个名字
      // 1️⃣方法一
      component: Home, // 组件,当浏览器中访问对应的地址时展示的内容
    },
    {
      path: "/list",
      name: "L",
      // 异步方式引入的路由组件会在打包的时候生成单独的js文件
      //  在使用的时候才会被加载
      //  此方法主要用来做性能优化
      // 2️⃣方法二
      component: () => import("./pages/List"), // 异步引入路由,当访问到此地址的时候才会引入文件
    },
  ],
});

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

App.vue

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png" />
    <!-- 是路由中的内置组件,用来生成a标签 -->
    <router-link :to="{name: 'H'}">【首页】</router-link>
    <router-link :to="{name: 'L'}">【列表】</router-link>
    <hr />
    <!-- 是用来展示组件的内容的. 路由跳转之后的组件页面内容都在此处进行展示 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'App',
  components: {}
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

src/pages/List.vue和Home.vue
在这里插入图片描述
自己创建的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值