修复问题
首先,查看左侧文件的目录结构如下:
├── vue-router-2.5.2
├── vue2.2.6.js
└── index.html
点击 WebIDE 右下角的Go Live按钮来运行项目。
接下来,在 VM 顶部打开“Web 8080”并手动刷新,以查看如下页面效果:
- 当你点击“to /”时,页面将显示“This is A”。
- 当你点击“to /b”时,页面将显示“This is B”。
- 当你再次点击“to /”时,页面将显示“This is”。
在这一步中,你将修复 vue-router-2.5.2/src/components/view.js 文件中的问题。
-
打开 vue-router-2.5.2/src/components/view.js 文件。
-
找到文件的第 53 行,即 data.registerRouteInstance 函数。
-
按如下方式更新 data.registerRouteInstance 函数:
data.registerRouteInstance = (vm, val) => {
// val 对于注销可能为 undefined
var current = matched.instances[name];
if ((val && current !== vm) || (!val && current === vm)) {
matched.instances[name] = val;
}
};
这里的更改是检查 val 和 matched.instances[name] 是否不同,或者 val 是否为假值且 matched.instances[name] 与 vm 相同。这确保了只有当实例实际发生变化时才调用 registerRouteInstance 钩子。
-
保存对 view.js 文件所做的更改。