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)
经过很长时间的测试,我发现最后的尝试已经差不多了,请参见另一个问题:
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)