我只是升级到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/