路由元信息

meta

每个路由的标识信息,是路由独有的一个信息,无论在路由中是否定义meta,在组件中都可以通过this.$route.meta访问到,如果没有定义,返回{}

在组件中:

this.$route.meta获取该组件的路由元信息,如果未定义,则返回{}

在路由中:

通过router.beforeEach((to,from,next)=>{
      console.log(to.meta)
  })
  
给每个路由的配置项多一个meta属性
meta:{
 
}

路由元信息用途

根据每个路由特有的信息
1.验证用户是否登录
2.设置标题
3.是否显示某个组件
4.组件是否缓存……

验证用户是否登录,设置标题,举例:

import Vue from 'vue'
import Router from 'vue-router'import Header from "../components/header"
import Detail from "../components/goodsDetails"
import Login from "../components/login"
import goodsList from "../components/goodsList"
Vue.use(Router)let router = new Router({routes: [{path: '/',redirect: Header}, {path: '/details/:name/:price/:id',name: 'details',component: Detail,meta: {isLogin: true,title: "详情页"}},{path: '/login',name: 'login',component: Login,meta: {isLogin: false,title: "登录页"}}, {path: '/goodsList',name: "goodsList",component: goodsList,meta: {isLogin: false,title: "列表页"}}]
})//判断是否登录
router.beforeEach((to, from, next) => {// console.log(to);//设置标题document.title = to.meta.title;//判断是否登录let token = true;if (to.meta.isLogin) {if (token) {next();} else {next("/login")}}next();})export default router;

组件缓存

<keep-alive><router-view></router-view>
</keep-alive>
<!-- 这里是需要keepalive的 -->
<keep-alive><router-view v-if="$route.meta.keepAlive"></router-view>
</keep-alive><!-- 这里不会被keepalive -->
<router-view v-if="!$route.meta.keepAlive"></router-view>
{path: '',name: '',component: ,meta: {keepAlive: true} // 这个是需要keepalive的
},
{path: '',name: '',component: ,meta: {keepAlive: false} // 这是不会被keepalive的
}

如果缓存的组件想要清空数据或者执行初始化方法,在加载组件的时候调用activated钩子函数,如下:

activated: function () {this.data = '';
}

Vue项目实战03 : vue中 meta 路由元信息相关推荐

  1. 【Vue项目实战】vue.js2.5 饿了么APP(1)概述+项目准备

    一.概述 1. 项目简介 使用vue.js vue是当前最火的MVVM框架,(优点:轻量.简洁.高效.数据驱动.组件化) 本项目做的是:高仿上线外卖APP商家模块 开发过程:需求分析-脚手架工具-数据 ...

  2. 【vue项目实战】Vue工程化项目--猫眼电影移动端

    这里是仿猫眼移动端.使用 vue-cli 创建项目. ​ 本节先介绍并进行项目的初始化,然后把主框架搭起来,熟悉路由和组件,后面在 项目demo 持续贴出完整项目代码.也会更新博客. ​ 第二节传送 ...

  3. Vue项目实战02 : vue项目刷新当前页面的三种方法

    想必大家在刨坑vue的时候也遇到过下面情形:比如在删除或者增加一条记录的时候希望当前页面可以重新刷新或者如下面这种: 这时候我们最直接的思维就是想到下面这种: 但是,试过的会发现用vue-router ...

  4. 【vue项目实战】Vue工程化项目--猫眼电影移动端(二)

    vue工程化第二节 添加内容和样式 使用axios请求数据,参考这里 添加局部左右滑动(即将上映页),参考 (左右滑动也可使用插件) 组件化开发,相同代码可以提取出来作为一个组件来调用,减少代码量,提 ...

  5. Vue项目实战01: vue里父传子 传事件(easy)

    vue中的组件通信 相信小伙伴们已经达到炉火纯青的地步了 提到vue里父子组件通信 脑子里第一个想到的是不是使用$emit来传递. 实现肯定是能实现的 下面我们一起看一下一种简单的方法 父组件: 在父 ...

  6. Vue项目实战04 : Vue 轮询接口的实现

    项目中我们经常需要实现轮询-每隔几秒请求一次接口刷新数据 一般都会使用setInterval,但要注意单纯使用它会导致页面卡死,所以一定要清除定时器 setInterval不会清除定时器队列,每重复执 ...

  7. vue路由第三篇-导航守卫、路由元信息、动态路由

    导航守卫 1. 环境准备 1.1 安装Element-Plus npm install element-plus 1.2 注册Element-Plush 需要在 main.ts 文件中注册 impor ...

  8. 路由的导航守卫过渡动效transtion导航守卫 路由懒加载 路由元信息 @stage3---wee2--day7

    # 路由的导航守卫 别名: 导航守卫 路由守卫 路由钩子 路由拦截 作用: - 类似 [保安] 守卫路由 进 举例: 携带数据进 出 举例: 事情完成才能出 导航守卫一共有三种形式 [ 项目三选一 ] ...

  9. Vue项目实战-vue2(移动端)

    Vue项目实战(移动端)# 相关资料 (一) 创建项目 (二) 禁用Eslint (三) devtool (四) 添加less支持 (五) vue路由配置(背诵) (六) 父子组件通信(背诵) (七) ...

最新文章

  1. 如何把2d目标检测的bbox转化到现实世界坐标系的?
  2. solr 中文分词器IKAnalyzer和拼音分词器pinyin
  3. 致SEO初学者:学习SEO要注意的几个问题
  4. json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑
  5. 20172310《程序设计与数据结构》(上)课程总结
  6. VB Listview导出到CSV文件函数
  7. python之twisted模块安装
  8. Java面向对象练习题继承之物种
  9. 字符串反转python 测试_Python中的反转字符串问题
  10. NOIP2017奶酪
  11. 【观察】神州数码:三生万物,云起神州
  12. 2013年度CSDN十大博客之星
  13. Python网络爬取科目一题库(1685道)2021.1.3
  14. SwiftUI 7GUIs编程基准之 05 CRUD 增删改查 掌握分离域和表示逻辑,管理变异,构建非平凡的布局。(教程含源码)
  15. 六度分离(floyd)
  16. 《Dreamweaver CS6 完全自学教程》笔记 第十三章:Dreamweaver 中的 HTML 代码
  17. 多年亿级流量下的高并发经验总结,我毫无保留的写在了这本书中(CSDN创始人、总裁、副总裁联合推荐)
  18. C++图常用库boost graph library
  19. click和on click区别
  20. logit模型应用实例_第六章 逻辑斯谛回归与最大熵模型(第1节 逻辑斯谛回归模型)...

热门文章

  1. 《毅力–如何培养自律的习惯》读书笔记
  2. 数据结构学习之路-第一章:绪论
  3. TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结
  4. 深入理解Spark 2.1 Core (一):RDD的原理与源码分析
  5. 精益软件过程中七大浪费的应对之道
  6. 把MySQL中的各种锁及其原理都画出来
  7. WinExec, ShellExecute,CreateProcess的对比
  8. ExcelAndJSON的设计决策
  9. #ifdef #else #endif 的用法
  10. ADO.NET知识汇总