为什么 onclick 事件不适用于 vue-router?

Why onclick event doesn't work with vue-router?

我想在vue-router中使用vue.js,但是onclick不起作用。

在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 更改为 topMenu.vue。我想在站点的所有页面上使用菜单,但我不想在每个页面组件中使用重复的菜单,这不是 DRY!

我找到了答案。太简单了,在我的代码中我只是替换了:

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

与:

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