2016-10-04 93 views
1

随着vuejs 1中的代码是:的Bootstrap与VUE 2,路由器和VUE装载机

const App = Vue.extend(Index); 
router.start(App, '#app'); 

Index是一个组件。

我尝试将其转换为VUE 2这样的:

const App = Vue.extend(Index); 
const app = new App(router).$mount('#app'); 

但是,这给出了一个[Vue warn]: Error when rendering root instance

什么是重写这个的正确方法?

感谢

回答

4

你必须给路由器作为参数:

const app = new App({ router }).$mount('#app'); 

例子:

const Index = { 
 
    template: `<div id="app">It's working!</div>` 
 
} 
 
const App = Vue.extend(Index) 
 
const router = new VueRouter() 
 

 
const app = new App({ router }).$mount('#app');
<script src="https://unpkg.com/vue/dist/vue.js"></script> 
 
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> 
 
<div id="app"></div>

+0

非常感谢工作代码片段!现在,在我的应用程序中,它说'未知的自定义元素:'。试图找出原因...... –

+1

如果你使用npm和webpack/browserify,你必须调用'Vue.use(VueRouter)'来确保vue-router注册组件''@francoisromain – Atinux

+0

这就是问题......谢谢 –

2

试试这个程序(App ==指数)

const App = Vue.extend(require('./App.vue')) 

const router = new VueRouter({ 
    routes, 
    mode: 'abstract' 
}) 

new App({ 
    router, 
}).$mount('#app')