今回は、Vuejs を使用してルーティングを定義する方法と、Vuejs を使用してルーティングをカスタマイズする際の注意事項について説明します。実際のケースを見てみましょう。
単一ファイル コンポーネントの場合、テンプレートはテンプレート タグを通じて指定できることがわかっています。さらに、Vue では、レンダリング関数 render をカスタマイズする方法も提供します。 render の使用については、公式ドキュメントをお読みください。 次に、フロントエンドルーティングの実装を開始します。 簡単な実装 まず、vue init webpack vue-router-demo コマンドを実行してプロジェクトを初期化します (初期化中に vue-router の使用を選択しないことに注意してください)。 まず、ページのテンプレートとして使用するlayout/index.vueファイルをsrcディレクトリに作成します。コードは次のとおりです:<template> <div class="container"> <ul> <li><a :class="{active: $root.currentRoute === '/'}" href="/">Home</a></li> <li><a :class="{active: $root.currentRoute === '/hello'}" href="/hello">HelloWord</a></li> </ul> <slot></slot> </div></template><script>export default { name: 'Layout', };</script><style scoped>.container { max-width: 600px; margin: 0 auto; padding: 15px 30px; background: #f9f7f5; }a.active { color: #42b983; }</style>
<template> <layout> <!-- 原模板内容 --> </layout></template><script>import Layout from '@/layout';export default { name: 'HelloWorld', components: { Layout, }, // ...};</script><!-- ... -->
404 ページ も追加する必要があります。
最後のステップは最も重要なステップで、main.js を書き換え、ページ URL に従ってレンダリング コンポーネントを動的に切り替えます。 ルーティング マッピングを定義します:// url -> Vue Componentconst routes = { '/': 'Home', '/hello': 'HelloWorld', };
const app = new Vue({ el: '#app', data() { return { // 当前路由 currentRoute: window.location.pathname, }; }, computed: { ViewComponent() { const currentView = routes[this.currentRoute]; /* eslint-disable */ return ( currentView ? require('./pages/' + currentView + '.vue') : require('./pages/404.vue') ); }, }, });
const app = new Vue({ // ... render(h) { // 因为组件是以 es module 的方式引入的, // 此处必须使用 this.ViewComponent.default 属性作为参数 return h(this.ViewComponent.default); } });
jsの基本的な改善学習のための操作DOMオブジェクトスタイル
以上がVuejsカスタムルーティングの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。