我刚刚升级到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,
});
答案 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
文件。