我只是升级到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: How to initialize(construct) a Vue component from a .vue file?

以下代码运行完美!

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

关于mvvm - Vue2 : How to specify the vue-router root component?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40904497/

10-12 15:45