2017-01-14 1 views
0

무언가를 클릭하면 간단한 방향 전환을 설정하기 만하면됩니다. vue-router를 사용하는 방법을 잘 모르겠습니다.Vue 2 Laravel 5.3 Vue-router 2 Vue-router를 설정하는 올바른 방법

앱에 홈 클릭

Uncaught TypeError: Cannot read property 'push' of undefined

편집 # 1 (에

import VueRouter from 'vue-router'; 

Vue.use(VueRouter); 

const router = new VueRouter({ 
    routes: [ 
    { path: '/', redirect: '/' }, 
    { path: '/product', redirect: '/product' } 
    ] 
}); 

const app = new Vue({ 
    el: '#app' 
}); 

Navbar를-main.vue에게

<template> 
    <ul class="nav navbar-nav"> 
    <li class="nav-item nav-item-left navbar-btn" @click.prevent="goToHome()" @mouseover.prevent="hoverIcon('home')" @mouseleave.prevent="hoverIcon('')"> 
     <div class="nav-link nav-main" :class="[{ 'navbar-home-hover' : hovered == 'home' },{ 'navbar-home' : hovered !== 'home' }]">Home <span class="sr-only">(current)</span></div> 
    </li> 
    <li class="nav-item nav-item-left navbar-btn" @click.prevent="goToProduct()" @mouseover.prevent="hoverIcon('product')" @mouseleave.prevent="hoverIcon('')"> 
     <div class="nav-link nav-main" :class="[{ 'navbar-product-hover' : hovered == 'product' },{ 'navbar-product' : hovered !== 'product' }]">Product</div> 
    </li> 
    <li class="nav-item nav-item-left navbar-btn" @mouseover.prevent="hoverIcon('blog')" @mouseleave.prevent="hoverIcon('')"> 
     <div class="nav-link nav-main" :class="[{ 'navbar-blog-hover' : hovered == 'blog' },{ 'navbar-blog' : hovered !== 'blog' }]">Blog</div> 
    </li> 
    <li class="nav-item nav-item-left navbar-btn" @mouseover.prevent="hoverIcon('mktInfo')" @mouseleave.prevent="hoverIcon('')"> 
     <div class="nav-link nav-main" :class="[{ 'navbar-mktInfo-hover' : hovered == 'mktInfo' },{ 'navbar-mktInfo' : hovered !== 'mktInfo' }]">Market Info</div> 
    </li> 
    </ul> 
</template> 


<script> 
    export default { 
    data(){ 
     return{ 
     hovered: '', 
     } 
    }, 
    methods:{ 
     hoverIcon(input){ 
      var vm = this 
      vm.hovered = input 
     }, 
     goToHome(){ 
      this.$router.push('/'); 
     }, 
     goToProduct(){ 
      this.$router.push('/product'); 
     } 
    } 
    } 
</script> 

오류를 app.js : 아래 내 코드를 찾아주세요. js)

+0

누군가 저를 도울 수 있습니까? 당신의 응답 @saurabh에 대한 – warmjaijai

답변

0

는 앱에 따라서는

의 뷰 응용 프로그램의 변화를 다음 라우터 제조업체를 주입하기 위해 '정의되지 않은'되는 라우터를 주입하지 않는 것 같습니다 app.js :

const app = new Vue({ 
    el: '#app', 
    router // inject the router 
}); 

그 후 앱 전체에 this.$router을 사용할 수 있습니다.


다른 접근 방식 :

수입 라우터 ./path/to/app

'에서 당신이 할 수있는 그 이후 :

당신은 다음과 같이 app.js에서 router를 가져올 수있다 단순히 다음을 사용하십시오 :

router.push 
+0

덕분에, 나는 첫 번째 제안을 시도하지만, 콘솔 로그는 오류를 반환 catch되지 않은 오류 RangeError을 :. 최대 호출 스택의 크기는 정규식에서 RegExp.exec () 에서 를 초과 [Symbol.match] (네이티브) at String.match (native) – warmjaijai

+0

app.js에 추가 한 의미가 없거나 과도한 코드가 있습니까? – warmjaijai

+0

@warmjaijai'Vue.use (VueRouter);가 필요 없다고 생각합니다.이 [fiddle] (http://jsfiddle.net/yyx990803/xgrjzsup/)을 확인하십시오. – Saurabh

관련 문제