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

Alf*_*ang 2 mvvm ecmascript-6 vue.js vue-router vuejs2

我只是升级到Vue2.0,对它并不那么熟悉。

一项更改为我带来了麻烦,因为vue-router初始化[docs]已更改:

在我的情况下,初始化代码如下更改:

import RootApp from './components/RootApp.vue';

router.start(RootApp, '#app')
Run Code Online (Sandbox Code Playgroud)

import RootApp from './components/RootApp.vue';

new Vue({
  el: '#app',
  router: router,
  render: h => h(RootApp)
})
Run Code Online (Sandbox Code Playgroud)

很快,我发现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,
});
Run Code Online (Sandbox Code Playgroud)

Alf*_*ang 5

经过很长时间的测试,我发现最后的尝试已经差不多了,请参见另一个问题:

Vue.js 2:如何从.vue文件初始化(构造)Vue组件?

下面的代码运行完美!

import RootApp from './component/RootApp.vue';
const RootAppConstructor = Vue.extend(RootApp);
new RootAppConstructor({
    el: '#app',
    router: router,
});
Run Code Online (Sandbox Code Playgroud)