[英]Vue 1.x/2.x: Get vue-router path url from a $route object
[英]Vue2: How to specify the vue-router root component?
我刚升级到Vue2.0,对它不是很熟悉。
一项更改给我带来了麻烦,即 vue-router 初始化[docs]已更改:
就我而言,初始化代码更改如下:
import RootApp from './components/RootApp.vue';
router.start(RootApp, '#app')
import RootApp from './components/RootApp.vue';
new Vue({
el: '#app',
router: router,
render: h => h(RootApp)
})
很快我发现以这种新案例的方式指定RootApp
会使根应用程序代码对我来说模棱两可。
在旧情况下,每个子路由元素的$root
元素产生RootApp
实例,而在新情况下,它产生另一个包含RootApp
实例作为其唯一子项的组件。
那么,就麻烦了,有没有什么办法可以创建RootApp
只是在 Vue2 中充当根节点?
或者我猜,有什么方法可以创建如下所示的 Vue 实例(但尝试失败):
# Failed code to tell what I want
import RootApp from './component/RootApp.vue';
new RootApp({
el: '#app',
router: router,
});
测试了半天,发现最后一次尝试也差不多了,看另外一个问题:
Vue.js 2:如何从 .vue 文件初始化(构造)一个 Vue 组件?
以下代码完美运行!
import RootApp from './component/RootApp.vue';
const RootAppConstructor = Vue.extend(RootApp);
new RootAppConstructor({
el: '#app',
router: router,
});
您可以重构您的RootApp
,以便它的方法/数据等......都驻留在这个新的根 Vue 实例中。
这也意味着将RootApp
的模板复制到您的主index.html
(或您使用的任何文件)文件中。 完成后,尽管一切都应该像以前一样运行,尽管不是来自单个.vue
文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.