我正在尝试通过 访问 vue-router 中的会话this.a.app,但它弹出 1 个错误。在我调试之后,我发现它this是未定义的。这是我用来显示的代码this。
我曾尝试使用function(to, from, next) {...}而不是 es6 语法,但this仍然未定义。
router.beforeEach((to, from, next) => {
if (!to.meta.isPublic){
// eslint-disable-next-line
console.log(this)
}
next()
})
Run Code Online (Sandbox Code Playgroud)
是否需要进行任何配置才能this在 vue-router 中访问?
我疯狂地试图将 Vue 3 CLI 输出调和成适用于各种教程和插件的东西,这些教程和插件都使用 Vue 对象,如Vue.createApp(.... 在我的项目中,我可以使用
import {createApp} from 'vue';
createApp(...
Run Code Online (Sandbox Code Playgroud)
但import Vue from 'vue';导致 Vue 仍未定义。我通过 NPM 安装了 Vue 3。显然,我不了解 NPM 导入的一些关键问题,{createApp}如果导入整个模块不起作用,导入如何工作?
来自 package.json:
"dependencies": {
"@babel/polyfill": "^7.12.1",
"apexcharts": "^3.22.1",
"core-js": "^3.6.5",
"d3": "^6.2.0",
"vue": "^3.0.0",
"vue-router": "^4.0.0-rc.1",
"vue3-apexcharts": "^1.0.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"babel-eslint": "^10.1.0",
"babel-plugin-transform-regenerator": "^6.26.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^7.0.0-0"
},
Run Code Online (Sandbox Code Playgroud)
这是我的临时 main.js。这将打印“未定义”,然后是正确的 createApp 函数定义:
import Vue from 'vue';
import {createApp} from …Run Code Online (Sandbox Code Playgroud)