vue--10.路由守卫、仓库vuex、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里面去引入:

 

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值