10-Vue:路由

1.路由器

服务端路由
接口和服务的映射关系
在这里插入图片描述
前端路由
vue是单页面应用:vue只有一个html页面,项目中的内容都分别写到各自的组件中,切换组件来显示不同的内容
缺点: 第一次加载,会加载所有的组件 慢 时间长
优点:
1:良好的交互体验 (局部渲染,每个部分是单独的模块,避免了不必要的跳转和重复渲染)
2:前后端分离 减少开发效率,架构清晰
3:减轻服务器的压力
不同路由,切换不同的组件

2.组件分类

vue文件分2类,一个是页面组件,一个是复用组件

views 页面组件–页面展示–配合路由使用

components 复用组件–展示数据/常用于复用

3.vue-router介绍

在vue项目中集成路由
https://router.vuejs.org/zh/index.html
使用
1.安装

yarn add vue-router

2.src目录下新建router/index.js

// 引入vue   vue-router和vue是深度集成
import Vue from 'vue'
// 导入路由
import VueRouter from 'vue-router'

import Home from '../views/Home.vue'
import Part from '../views/Part.vue'
import Find from '../views/Find.vue'

// 在vue中,使用vue的插件,都需要调用vue.use()
Vue.use(VueRouter)

// 创建路由规则  一一对应关系
const routes = [
  {
    path: '/home',  //路由地址
    component: Home 
  },
  {
    path: '/part',
    component:Part
  },
  {
    path: '/find',
    component:Find
  }
]

// 创建路由对象
const router = new VueRouter({
  // 路由规则
  routes
})

// 暴露路由对象
export default router

3.main.js中把路由关联到vue实例

import Vue from 'vue'
import App from './App.vue'
// 导入路由对象
import router from './router'
import store from './store'



Vue.config.productionTip = false

new Vue({
  // 把路由对象注入到vue实例中 在任何一个组件中就可以使用路由对象
  router,
  store,
  render: h => h(App)
}).$mount('#app')

4.App.vue中写路由出口
在这里插入图片描述

4.声明式导航

使用全局组件router-link来替代a标签
1.vue-router提供了一个全局组件 router-link;
2.router-link实质上最终会渲染成a标签, to属性等同于href属性;
3.router-link提供了生命是高亮的功能 (自带类名)

<template>
  <div>
    <div class="wrap">
      <router-link to="/">首页</router-link>
      <router-link to="/part">part</router-link>
      <router-link to="/find">发现</router-link>
    </div>
    <!-- 路由出口 -->
    <router-view></router-view>
  </div>
</template>

<script>
export default {};
</script>

<style scoped>
/* 模糊匹配  /part中有/  */
.router-link-active {
  color: red;
}
/* 精确匹配 */
.router-link-exact-active {
  background-color: yellow;
}
</style>

5.重定向

路由规则中没有要匹配的路由,用户体验就会很差,重定向到指定的路由

网页默认打开,匹配路由 ‘/’ ,强制切换到 ‘/find’上

const routes = [
{
path: ‘/’, //路由地址
redirect:‘/find’,
component:Home
},
{
path: ‘/find’, //路由地址
component:Find
},
{
path: ‘*’, //匹配的是所有的路由
redirect:‘/’ //重定向
}
]

6.404页面

路由规则中没有要匹配的路由,用户体验就会很差,默认给一个404页面
创建NotFound页面

const routes = [
{
path: ‘*’, //路由地址
component:NotFound
},
]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值