2016-09-11 1 views
2

から。私はVueのアプリを開始するところアクセスVueの私は読みやすくするために、外部ファイルで私のルートを定義したい外部ファイル

main.jsファイルです。下記の見:

import Vue from 'vue' 
import VueRouter from 'vue-router' 
import App from './App' 

vue.use(VueRouter) 

// I would like these route definitions to be contained in their own file 
var Monday = Vue.extend({ template: '<div>Monday view<div>' }) 
var Tuesday = Vue.extend({ template: '<div>Tuesday view<div>' }) 
... 

var router = new VueRouter() 

router.map({ 
    '/monday': { component: Monday }, 
    '/tuesday': { component: Tuesday } 

router.start(App, 'body) 

時にアプリケーションのスケール、私は読みやすさのために自分のファイルに、ルート定義var Monday = Vue.extend({ ... })などを分離することを好むだろう。

問題:RouteDefinitions.jsファイルを作成する場合、私はVue.extendを定義する必要がある "Vue"にアクセスできません。私はimport Vue from 'vue'再び RouteDefinitions.jsからですか?これは赤旗ですか?それとも、main.js内のすべてのルートロジックを保持するだけですか?

答えて

4

できます。あなたのmain.jsで次にrouter.js

import Vue from 'vue' 
import VueRouter from 'vue-router' 

Vue.use(VueRouter) 

const router = new VueRouter({ 
    routes: [ 
    /* your routes definition here */ 
    ] 
}) 

router.beforeEach((route, redirect, next) => { 
    /* your route hooks */ 
    next() 
}) 

router.afterEach(function (transition) { 
    /* your route hooks */ 
}) 

export default router 
+0

に、私が言及している必要があります。この

import Vue from 'vue' import router from './config/router' Vue.router = router new Vue({ router, el: '#app', render: h => h(App) }) 

ような何かを、私は前のv2.0 VUE-ルータを使用しています。将来これを見ている人には、VueRouter({})に渡されるオプションのいくつかが私たちのためには機能しません。あなたはルータ変数 'const router = new VueRouter()'にVueRouter関数を渡すことができます。さもなければ、これは魅力のように働いた!ありがとうございました!! – bruh

+1

あなたは正しいです。私の例はvue-router 2.0に基づいていますが、あなたは基本的に、ルータの設定をあなたの 'main.js'でインポートできる別の' .js'モジュールに移動する方法を考えています... –

関連する問題