【发布时间】:2017-09-13 16:26:46
【问题描述】:
有没有办法在路由更改时重新渲染组件?我正在使用 Vue Router 2.3.0,并且在多个路由中使用相同的组件。它第一次运行良好,或者如果我导航到不使用该组件的路线然后转到使用该组件的路线。我正在传递像这样的道具有什么不同
{
name: 'MainMap',
path: '/',
props: {
dataFile: 'all_resv.csv',
mapFile: 'contig_us.geo.json',
mapType: 'us'
},
folder: true,
component: Map
},
{
name: 'Arizona',
path: '/arizona',
props: {
dataFile: 'az.csv',
mapFile: 'az.counties.json',
mapType: 'state'
},
folder: true,
component: Map
}
然后我使用道具来加载新地图和新数据,但地图保持与首次加载时相同。我不确定发生了什么。
组件如下所示:
data() {
return {
loading: true,
load: ''
}
},
props: ['dataFile', 'mapFile', 'mapType'],
watch: {
load: function() {
this.mounted();
}
},
mounted() {
let _this = this;
let svg = d3.select(this.$el);
d3.queue()
.defer(d3.json, `static/data/maps/${this.mapFile}`)
.defer(d3.csv, `static/data/stations/${this.dataFile}`)
.await(function(error, map, stations) {
// Build Map here
});
}
【问题讨论】:
-
显示组件?
-
还有,什么路由器版本?
-
@BertEvans 我已经用组件和 vue 路由器版本更新了问题。谢谢
标签: vue.js vuejs2 vue-component