IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue--10.路由守卫、仓库vuex、elementUI框架 -> 正文阅读

[JavaScript知识库]vue--10.路由守卫、仓库vuex、elementUI框架

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

1.路由守卫

1.1全局守卫

1.2路由独享的守卫

1.3组件内部生命周期守卫

2、仓库vuex

2.1 State

2.2 Getter

2.3?Mutation

2.4 Action

2.5 Module

3、elementUI框架



1.路由守卫

1.1全局守卫

全局前置钩子router.beforeEach(fn),导航被触发----一般登录验证

全局解析钩子router.beforeResolve(fn),组件初始化

全局后置钩子router.afterEach(fn),没有next,导航被确认,一般路由跳转以后用window把窗口调上去

示例应用如下:

在router文件里面的index.js里面去写入

1.2路由独享的守卫

1、路由独享的守卫beforeEnter(to,from,next),路由初始化(组件未初始化)----

????????a,路由鉴权-----用户体验:界面,功能,bug,效率,权限

????????b,组件异步加载情景中(插件配置:syntax-dynamic-import)

2、beforeEnter模板如下:

3、beforeEnter?示例应用如下:

1.3组件内部生命周期守卫

beforeRouteLeave 从该组件离开

beforeRouteEnter(to,from,next),组件被激活,使用不了this,故构造指定该next 可以接收一个回调函数接收当前vm 实例----路由传参获取参数,得到初始化数据

beforeRouteUpdate(to,from,next),组件重用时被调用----路由传参获取参数,避免增添watch 开销

导航守卫执行顺序:beforeRouteLeave < beforeEach < beforeRouteUpdate < beforeEnter < beforeRouteEnter < beforeResolve < afterEach

出发路由,预备从当前组件离开,判断路由变化,判断组件是否重用,判断新路由初始化,判断组件初始化,路由与组件初始化完毕,路由组件重定向完毕

beforeRouteLeave示例如下:

2、仓库vuex

1、下载引入vuex:vue create init? ==>?选择配置vuex

2.1 State

1、创建state状态,状态就是那个存数据的对象

2、组件中访问数据this.$store.state.msg

2.2 Getter

1、getter就就像是store的计算属性,它会传入state对象供我们操作

2、组件中访问数据this.$store.getters.bigMans

2.3?Mutation

组件中希望更改 Vuex 的 store 中的状态(数据)的唯一方法是提交 mutation

这样设计的原因是,只有通过mutation来更新数据,它才会去帮我们通知所有使用数据的组件更新数据 刷新UI

不要用赋值表达式直接在组件中给store设置新数据

组件中使用

????????2.1 直接触发并传值(提交载荷):this.$store.commit('increment',{n:100})

????????2.2 可以以一个对象的形式传入:

2.4 Action

Action 提交的是 mutation,而不是直接变更状态。

Action 可以包含任意异步操作。

使用的两种情况:

????????1.直接分发:this.$store.dispatch('increment',{n:100})

? ? ? ? 2.以对象形式分发

?

2.5 Module

Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter

3、elementUI框架

安装:npm i element-ui -S

引入:

使用步骤:

在main.js里面去引入:

?

?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:54:55  更:2022-09-15 01:55:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:05:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码