programing

Vuejs - 수집되지 않은 유형 오류: 속성을 재정의할 수 없습니다: $router

randomtip 2022. 9. 3. 09:55
반응형

Vuejs - 수집되지 않은 유형 오류: 속성을 재정의할 수 없습니다: $router

저는 Vuejs에 비교적 익숙하지 않습니다.지금부터 다음 오류가 발생하고 있습니다.(페이지가 로드될 때 표시됨)

수집되지 않은 유형 오류: 속성을 재정의할 수 없습니다: $router
Function.defineProperty()로 지정합니다.
Function.install(VM2179 vue-router.esm.js:526)로 설정
기능하고 있습니다.Vue.use (vue.js:4738)
at eval (VM2179 vue-router.esm.js:2447)
오브젝트../node_modules/vue-router/dist/vue-router.esm.js(VM2105 app.js:1615)
__webpack_require__(VM2105 app.js:712)로
fn (VM2105 app.js:95)
at eval (VM2178 index.js:3)
at 객체../src/router/index.js(VM2105 app.js:2415)
__webpack_require__(VM2105 app.js:712)로

이 문제는 웹 앱의 유용성에 영향을 주지 않는 것 같습니다.Vue.use(Router)를 여러 번 선언하는 것은 아닙니다.

다음은 index.js 파일입니다(src/router 단위).

import Vue from 'vue'
import Router from 'vue-router'
import Blog from '../components/Blog.vue'
import BlogPost from '../components/BlogPost.vue'

Vue.use(Router)
Vue.config.silent = true

export default new Router({
  routes: [
    {
      path: '/blog',
      name: 'Blog',
      component: Blog
    },
    {
      path: '/blog/:slug',
      name: 'Blog-post',
      component: BlogPost
    }
  ]
})

app.ts: (src, 메인 진입점)

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store/simple_store'
import '../assets/app.css'
import './assets/main_logo.css'
import './assets/pages/page_header_animation.css'

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})

도와주세요!고마워!!

해결했습니다!

index.html 파일에서 vue를 다시 Import했습니다.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Meko Deng</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> -->
</body>
</html>

코멘트가 제대로 된 것 같아요!

이는 의 다음 코드에 기인합니다.vue-router

if (inBrowser && window.Vue) {
  window.Vue.use(VueRouter);
}

파일을 포함할 때만 존재합니다.<script>블록(빌드 시스템 없음)

모두 제거<script>Vue 또는 관련 컴포넌트와 관련된 요소. 웹 팩을 사용할 때는 필요하지 않습니다.

웹 팩을 사용하다가 세트를 잊어버린 것 같습니다.

externals: {
  Vue: 'vue'
}

이 경우 외부 CND와 웹 팩의 lib에서 vue와 vue-router를 2회 초기화했습니다.

만약 당신이 아래 줄을 두 번 사용하지 않는다고 확신한다면.

Vue.use(VueRouter);

그러면 스크립트를 두 번 추가했기 때문에 이렇게 됩니다.

<script src="{{ asset('js/app.js') }}" defer></script>

중복된 스크립트를 삭제합니다.기본적으로 Larabel은 app.blade의 머리 부분에 이 스크립트 태그를 추가합니다.php 파일

언급URL : https://stackoverflow.com/questions/52209717/vuejs-uncaught-typeerror-cannot-redefine-property-router

반응형