#vue.js #vuejs2 #vue-router #vue-loader
#vue.js #vuejs2 #vue-маршрутизатор #vue-загрузчик
Вопрос:
С vuejs 1 код был:
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
.
Как правильно переписать это?
Спасибо
Ответ №1:
Вы должны указать маршрутизатор в качестве параметра:
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>
Комментарии:
1. Большое спасибо за рабочий фрагмент кода! Теперь в моем приложении написано
Unknown custom element: <router-view>
. Пытаюсь выяснить, почему…2. Если вы используете npm и webpack / browserify, вам нужно позвонить
Vue.use(VueRouter)
, чтобы убедиться, что vue-router зарегистрировал компонент<router-view>
@francoisromain
Ответ №2:
Попробуйте это (приложение == Индекс)
const App = Vue.extend(require('./App.vue'))
const router = new VueRouter({
routes,
mode: 'abstract'
})
new App({
router,
}).$mount('#app')