Vue2:如何指定vue-router根组件?

时间:2016-12-01 07:06:48

标签: mvvm ecmascript-6 vue.js vuejs2 vue-router

我刚刚升级到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,
});

2 个答案:

答案 0 :(得分:4)

经过很长时间的测试,我发现最后的尝试几乎就在那里,看到另一个问题:

Vue.js 2: How to initialize(construct) a Vue component from a .vue file?

以下代码完美无缺!

textarea

答案 1 :(得分:1)

你可以重构你的RootApp,以便它的方法/数据等...都存在于这个新的根Vue实例中。

这也意味着将RootApp的模板复制到您的主index.html(或任何您使用的)文件中。完成后虽然一切都应该像以前一样运行,但不是来自单个.vue文件。