一些基础配置

105 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

非初始化配置

npm install vue-router --save //报错

2022年2月7日以后,vue-router的默认版本,为4版本,而且 vue-router4,只能在vue3中, 只有vue-router3,能用在vue 2中

如果把vue-router4强制安装到vue2中,则会报上面的错误

npm i vue-router@3//正确

检查是否安装成功?

1.npm ls 查看

2.package.json 中 查看依赖 -》版本

报错

配置路由后删除helloworld组件 npm run serve 报错

解决?将homeview里导入和用到的helloworld删除

分析src/router/index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
//导入路由组件(方式一)
import HomeView from '../views/HomeView.vue'
//导入路由组件(方式二)-> 懒加载 -> 推荐
const AboutView = () => import('../views/AboutView.vue')
//使用插件
Vue.use(VueRouter)
//配置映射关系
const routes = [
  {
    path: '/',
    name: 'home',
    component: HomeView
  },
  {
    path: '/about',
    name: 'about',
    component: AboutView
  }
]
//new一个对象并在vue中注册
const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
//base代表应用的基路径,process.env.BASE_URL是指从从环境进程中根据运行环境获取的api的base_url
  routes
  //routes:routes
})
//暴露
export default router
​
routes其他属性
meta

meta->导航守卫

网站的访问流量中,有相当一部分都是来自于搜索引擎,而SEO往往又都是从优化meta标签开始的,meta标签提供关于HTML文档的元数据(元数据指用于描述数据的数据)。元数据不会显示在页面上,但是对于机器是可读的。它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务。

router属性
mode
mode: 'hash',//hash模式下,浏览器地址不规整,带有# -》丑
mode: 'history',//history模式下,浏览器地址规整,但需要后台支持
name
用法1:通过name属性,为一个页面中不同的router-view渲染不同的组件,如下代码所示:
<template>
  <div id="app">
     <router-view></router-view>
     <router-view  name="Hello"></router-view> //将渲染Hello组件
     <router-view  name="text"></router-view>   //将渲染text组件
  </div>
</template>
用法2:可以用name传参 使用$router.name获取组件name值
 <template>
  <div id="app">
    <p>{{ $route.name }}</p> //可以获取到渲染进来的组件的name值
    <router-view></router-view>
  </div>
</template>
用法3:用于pramas传参的引入 pramas必须用name来引入 query可以用name或者path来引入
   var router = new VueRouter({
      routes: [
        { name:'register', path: '/register/:id/:name', component: register }
      ]
    })
   <router-link :to="{name:'register',params:{id:10,name:'lili'}}">注册</router-link>
补充:
用法4:在路由出口外围加keep-alive 后 其中某个路由不需要缓存数据 要求点击刷新
​
​

active-class

router-link-exact-active

router-link-exact-active 是精确匹配规则,即只有当前点击router被匹配

router-link-active

router-link-active 默认是全包含匹配规则,即path名全包含在当前router path名开头的router也会被匹配到