vue.js - vue.js 使用 beforeRouteUpdate 将数据传递给路由
问题描述
vue.js 我正在尝试将数据从路由传递到 app.vue ,
我依赖beforeRouteUpdate
我想要做的是
routes: [
{
path: '/dashboard',
name: 'dashboard',
component: function () { return import( './views/dashboard.vue') },
beforeRouteUpdate: (to, from, next) => { document.title = 'dashboard'; next(); }
},
{
path: '/home',
name: 'home',
component: function () { return import( './views/home.vue') },
beforeRouteUpdate: (to, from, next) => { document.title = 'home'; next(); }
},
document.title正在工作,在 app.vue 中它不是动态的,
我的意思是当我选择另一个路线时document.title在app.vue中没有改变
在 app.vue 中
data(){
return {
getselected : document.title,
}
},
mounted() {
console.log('getselected - '+ this.getselected );
},
解决方案
据我所知,该函数beforeRouteUpdate
是一个组件挂钩。然后,您不能在路由器内部使用它。但是您可以通过查询将参数传递给您的路线。
你的路由器:
routes: [
{
path: '/dashboard',
name: 'dashboard',
query: {title: 'dashboard'},
component: function () { return import( './views/dashboard.vue') },
},
{
path: '/home',
name: 'home',
query: {title: 'home'},
component: function () { return import( './views/home.vue') },
},
]
您的组件:
data(){
return {
documentTitle: '',
}
},
mounted() {
this.documentTitle = this.$route.query.title;
},
换句话说,您可以在组件中使用路径名。你甚至不需要query
在你的路由器中声明。
data(){
return {
documentTitle: '',
}
},
mounted() {
this.documentTitle = this.$route.path.name;
},
推荐阅读
- python - SyntaxError:解析时出现意外的 EOF(在 eval 中)
- c++ - tee.hpp:55:22:致命错误:文件系统:没有这样的文件或目录 Travis 错误 C++
- javascript - 来自视频元素的 WebSpeech API 语音识别?
- javascript - 如何修复表格?
- visual-studio-code - 如果需要,为整个 VSCode 和每个项目设置特定的环境变量,以及如何为测试设置环境(Flask 图标)?
- mysql - 我的代码有什么可以改变的吗?
- python - bot 在问题 discord.py 中插入命令
- ios - 触摸功能在 SpriteKit 中不起作用吗
- css - 如何添加反应样式不重复
- react-table - 如何从 v7 (React-Table) 中的列访问另一列的值