首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue-路由器返回“无法重新定义属性:$router”错误

Vue-路由器返回“无法重新定义属性:$router”错误
EN

Stack Overflow用户
提问于 2019-01-16 18:24:27
回答 2查看 2.6K关注 0票数 1

我正在创建一个使用vue.js的小型站点,我试图设置一个vue-路由器(到目前为止还没有起作用)。我得到了“无法重新定义属性:$router”错误。这是我的密码。App.Vue

代码语言:javascript
复制
<div id="app">
<div class="header">
  <div class="tab">
    <router-link to="/page1">page1</router-link>
  </div>
  <div class="tab">
    <router-link to="/page2">page2</router-link>
  </div>
  <div class="tab">
    <router-link to="/page3">page3</router-link>
  </div>
  <div class="tab">
    <router-link to="/page4">page4</router-link>
  </div>
</div>
<div>
  <router-view></router-view>
</div>

Page1.vue

代码语言:javascript
复制
 <template>
    <div>
        <h3>sup</h3>
    </div>
  </template>
  <script>
    export default {
      name: 'app',
      data () {
        return {
          msg: 'hello world'
        }
      }
    }
  </script>
  <style>

  </style>

main.js

代码语言:javascript
复制
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
new Vue({
  el: '#app',
  render: h => h(App)
})
const Page1 = { template: '<div>Page1</div>' }
const Page2 = { template: '<div>Page2</div>' }

const routes = [
  { path: '/page1', component: Page1 },
  { path: '/page2', component: Page1 }
]

const router = new VueRouter({
  routes // short for `routes: routes`
})

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

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>hello-world</title>
  </head>
  <body>
    <div id="app"></div>
    <script src="/dist/build.js"></script>
  </body>
</html>

我以前和vue-路由器一起工作过,遇到过这个问题。我想我错过了什么,但我不知道是什么,任何帮助都会非常感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-16 18:34:18

您有重复的Vue实例。

看看这个。

代码语言:javascript
复制
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

const Page1 = { template: '<div>Page1</div>' }
const Page2 = { template: '<div>Page2</div>' }

const routes = [
  { path: '/page1', component: Page1 },
  { path: '/page2', component: Page1 }
]

const router = new VueRouter({
  routes // short for `routes: routes`
})

const app = new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
票数 2
EN

Stack Overflow用户

发布于 2019-01-16 18:32:39

您的主Vue实例化是重复的:

代码语言:javascript
复制
new Vue({
  el: '#app',
  render: h => h(App)
})

以及:

代码语言:javascript
复制
const app = new Vue({
  router
}).$mount('#app')

我认为这是问题的根源。我想它可以是这样的:

代码语言:javascript
复制
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)

const Page1 = { template: '<div>Page1</div>' }
const Page2 = { template: '<div>Page2</div>' }

const routes = [
  { path: '/page1', component: Page1 },
  { path: '/page2', component: Page1 }
]

const router = new VueRouter({
  routes // short for `routes: routes`
})

const app = new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54223152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档