Задать вопрос
@NerVik

Почему перестает работать v-on:click после подключения vue-router?

Начал делать новый проект на vuejs2, но столкнулся со странной проблемой. Использую этот шаблон: https://github.com/vuejs-templates/webpack-simple плюс добавляю vue-router: https://github.com/vuejs/vue-router/blob/dev/examp...

Без роутера все работает как надо, но как только подключаю роутер, то перестает работать onclick ивент, сам роутер при этом работает. ошибок никаких не выкидывает, просто перестает работать. Куда смотреть и как это пофиксить?

UPD:
Я таки тупой.
В App.vue у меня так:

<template>
  <div id="app">
    <hello></hello>
    <router-view></router-view>
  </div>
</template>
<script>
import hello from './components/hello/Hello.vue'

export default {
  name: 'app',
  components: {
    hello
  }
}
</script>
<style>...</style>

И если в hello.vue в шаблоне выставить любую кнопку с onclick, то она не будет работать, если компонент подключен таким способом. И заработает, если подключить тот же самый hello.vue в роутер вот так:

main.js:

import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router';
import hello from './components/hello/Hello.vue'

new Vue({
  el: '#app',
  template: '<App/>',
  components: { App }
});

Vue.use(VueRouter);

const routes = [
  {
    path: '/hello',
    name: 'hello',
    component: hello
  },
];

var router = new VueRouter({
  mode: 'history',
  base: __dirname,
  routes
});

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

Потому вопрос меняется: как сделать так, чтобы можно было подключать компоненты не в роутере (и чтобы они работали)? Например, в данном случае мне нужно, чтобы этот hello.vue был на всех страницах, потому он подключен в app.vue, но там он работает неправильно.
  • Вопрос задан
  • 544 просмотра
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@NerVik Автор вопроса
Блин.. во я идиот.. все было очень просто, нужно было заменить этот кусок кода:

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

на

const app = new Vue({
    router,
    render: function(createElement){
        return createElement(App)
    }
}).$mount('#app')

и всё работает.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ber_enot
Веб-разработчик, Vue.js / Node.js
Покажите код, пожалуйста. У меня работает всё - vue + vuex + vue-router и v-on:click
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы