当前位置: 首页 > 编程笔记 >

vue中全局路由守卫中替代this操作(this.$store/this.$vux)

从光启
2023-03-14
本文向大家介绍vue中全局路由守卫中替代this操作(this.$store/this.$vux),包括了vue中全局路由守卫中替代this操作(this.$store/this.$vux)的使用技巧和注意事项,需要的朋友参考一下

全局路由守卫this.$vux.loading.hide()报错,访问不到this

解决办法

申明变量代替this

main.js文件方法

router.beforeEach((to, from, next) => {
 if(vue){
 vue.$vux.loading.hide()
 }else{

 }
 next()
})

let vue = new Vue({
 el: '#app',
 router,
 store,
 components: { App },
 template: '<App/>'
})

if判断防止第一次初始化报错

或者

let vue = new Vue({
 el: '#app',
 router,
 store,
 components: { App },
 template: '<App/>'
})
router.beforeEach((to, from, next) => {
 // if(vue){
 vue.$vux.loading.hide()
 // }else{

 // }
 next()
})

补充知识:解决导航守卫使用不了this.$store

在vue router的导航守卫如beforeEach()中是无法直接通过this.$store去操作vuex的,因为这里的this指向不一致。

解决方式是在router的index.js中引入初始化好的store

import store from '@/store'

然后在导航守卫中可直接拿到router了

/**导航守卫 */
router.beforeEach((to, form, next) => {
 console.log(store.getters)
})

以上这篇vue中全局路由守卫中替代this操作(this.$store/this.$vux)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍this,this,再次讨论javascript中的this,超全面(经典),包括了this,this,再次讨论javascript中的this,超全面(经典)的使用技巧和注意事项,需要的朋友参考一下 JavaScript 是一种脚本语言,因此被很多人认为是简单易学的。然而情况恰恰相反,JavaScript 支持函数式编程、闭包、基于原型的继承等高级功能。本文仅采撷其中的一例:Jav

  • 介绍 在这篇文章里,我们将讨论跟执行上下文直接相关的更多细节。讨论的主题就是this关键字。实践证明,这个主题很难,在不同执行上下文中this的确定经常会发生问题。 许多程序员习惯的认为,在程序语言中,this关键字与面向对象程序开发紧密相关,其完全指向由构造器新创建的对象。在ECMAScript规范中也是这样实现的,但正如我们将看到那样,在ECMAScript中,this并不限于只用来指向新创建

  • 本文向大家介绍详谈jQuery中的this和$(this),包括了详谈jQuery中的this和$(this)的使用技巧和注意事项,需要的朋友参考一下 网上有很多关于jQuery的this和$(this)的介绍,大多数只是理清了this和$(this)的指向,其实它是有应用场所的,不能一概而论在jQuery调用成员函数时,this就是指向dom对象。 $(this)指向jQuery对象是无可厚非的

  • 问题内容: 假设我有以下示例: 例子一 现在,可能是: 例子二 关键不是实际的代码,而是使用一次以上,两次/三次或三次以上的时间。 上午我更好的性能,明智使用 例如两个 比 例如一个 (也许与解释为什么或者为什么不)? 编辑/注意 我怀疑两个更好。当我不可避免地忘记将事件处理程序添加到事件处理程序时,我有点担心的是在添加代码,而不是无意中引入了一个潜在的难以诊断的错误。那么我应该使用还是为此? 谢

  • 问题内容: 我开始阅读JavaScript模式,一些代码使我感到困惑。 这是我的问题: Q1: ? 为什么以及如何运作? Q2:为什么不只是 要么 问题答案: 与plain old 之间的区别在于,前者是一个 值 ,后者是一个左值。如果它是其他一些标识符,则将更加明显: 那是一个产生(只是说或会)的表达式,但不是对的引用。 你为什么在乎? 好了,规范了Ecma认为一个 参考 ,以成为一个“直接的e

  • 描述: this关键字的指向 语法 @this <namePath> 概述 @this标签指明this关键字的指向。 例子 在下面的例子中,@this标签迫使"this.name"被描述为"Greeter#name",而不是全局变量"name"。 /** @constructor */ function Greeter(name) { setName.apply(this, name);