vuejs2 - Vue路由器问题
问题描述
我在 vue 组件文件中有一个如下所示的链接。
<li v-for="(word,index) in allWord" v-bind:key="index">
<router-link :to="{ name: 'word', params: {id: word.id } }">
{{word}}
</router-link>
</li>
我在文件中的路线设置index.js
如下
export default new Router({
mode: 'history',
routes: [
{
path: '/',
component: MainBody
},
{ path: '/word/:id',
name: 'word',
component: Word
}
]
});
我得到如下网址
http://localhost:8080/word/4
我正在尝试捕获 URL 参数,word.vue
如下所示
<script>
export default {
watch: {
'$route': 'routeChanged'
},
methods: {
routeChanged () {
console.log(this.$route.params.id);
}
}
}
</script>
问题是当我点击<li></li>
我没有获得任何价值时console
,我在第二次点击时获得了价值。
为什么会这样?我想第一次获得价值。
解决方案
我建议你抓住mounted() 和updated() 中的值。
methods: {
getid: function()
{
this.wordid = this.$route.params.id
}
},
watch: {
wordid: function(val) {
console.log(this.wordid) // or console.log(val)
}
},
mounted()
{
this.getid()
},
updated()
{
this.getid()
}
推荐阅读
- vue.js - VueJs Hackernews 2.0 中的 Sass 代替 Stylus
- java - ojdbc 可以通过 SOCKS 代理连接到 Oracle 数据库吗?
- git - 如果一个分支从未合并到 master 中,删除该分支是否也会从 repo 中删除其提交?
- vba - 如何复制包含附件的记录?
- java-websocket - 使用嵌入式 Tomcat 8,如果 tomcat-embed-websocket.jar 不在类路径中,如何初始化 Websocket 容器?
- r - 在 Rcpp 中生成多元高斯分布
- python - 对数据框列使用while循环时出现AttributeError
- python - 如何获得每个主题 LDA 的唯一词?
- javascript - 悬停时左侧边距在轮播上不起作用
- firebase - 从 ember 连接 firebase 得到 firebase.app 不是函数 getApp