国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

vue路由教程之靜態路由

2019-11-19 10:54:12
字體:
來源:轉載
供稿:網友

前言

vue的單頁面應用是基于路由和組件的,路由用于設定訪問路徑,并將路徑和組件映射起來。傳統的頁面應用,是用一些超鏈接來實現頁面切換和跳轉的。在vue-router單頁面應用中,則是路徑之間的切換,也就是組件的切換。

首先在html中,引入vue-router.js和vue.js,用router-link觸發路由跳轉,router-link可以像a標簽一樣使用和定義樣式

router-view區域是路由匹配到的組件渲染的地方

<script src="https://unpkg.com/vue/dist/vue.js"></script><script src="https://unpkg.com/vue-router/dist/vue-router.js"></script> <div id="app"> <h1>Hello App!</h1> <p> <!-- 使用 router-link 組件來導航. --> <!-- 通過傳入 `to` 屬性指定鏈接. --> <!-- <router-link> 默認會被渲染成一個 `<a>` 標簽 --> <router-link to="/foo">Go to Foo</router-link> <router-link to="/bar">Go to Bar</router-link> </p> <!-- 路由出口 --> <!-- 路由匹配到的組件將渲染在這里 --> <router-view></router-view></div>

然后是js代碼

首先定義路由組件,組件可以是簡單的組件(template簡單定義即可),也可是extend定義的復雜組件

接下來定義路由映射表,就是定義路徑和組件之間的映射 

然后使用路由映射表創建路由對象 

最后使用路由對象創建vue對象,并掛載到指定元素

// 0. 如果使用模塊化機制編程,導入 Vue 和 VueRouter,要調用 Vue.use(VueRouter) // 1. 定義(路由)組件。// 可以從其他文件 import 進來const Foo = { template: '<div>foo</div>' }const Bar = { template: '<div>bar</div>' } // 2. 定義路由// 每個路由應該映射一個組件。 其中"component" 可以是// 通過 Vue.extend() 創建的組件構造器,// 或者,只是一個組件配置對象。// 我們晚點再討論嵌套路由。const routes = [ { path: '/foo', component: Foo }, { path: '/bar', component: Bar }] // 3. 創建 router 實例,然后傳 `routes` 配置// 你還可以傳別的配置參數, 不過先這么簡單著吧。const router = new VueRouter({ routes // (縮寫)相當于 routes: routes}) // 4. 創建和掛載根實例。// 記得要通過 router 配置參數注入路由,// 從而讓整個應用都有路由功能const app = new Vue({ router// (縮寫)相當于 router: router1}).$mount('#app') // 現在,應用已經啟動了!

上例中,路由映射表實例名為routes,在創建路由對象時可以縮寫,如果不叫routes,比如叫routesa,則創建路由對象時必須寫routes:routesa

創建vue對象時,路由對象名也一樣,如果不叫router,也不能縮寫

使用extend創建模板

var todoItem = Vue.extend({  data: function() {   return {    todoData: [     { id: 0, text: '蔬菜' },     { id: 1, text: '奶酪' },     { id: 2, text: '隨便其它什么人吃的東西' }    ]   };  },  template: `  <ul>   <li v-for='(d, i) in todoData' :key="i">    {{ d.text }}   </li>  </ul> `,  });   Home = { template: '<div>foo</div>' } About = { template: '<div>bar</div>' }  routes = [  { path: '/home', component: Home },  { path: '/about', component: todoItem } ]  router = new VueRouter({  routes:routes // (縮寫)相當于 routes: routes });  app = new Vue({  router:router }).$mount('#app');

還可以這樣寫template

<!DOCTYPE html><!-- saved from url=(0077)https://keepfool.github.io/vue-tutorials/06.Router/basic/basic_01.html#!/home --><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>abc</title> <link rel="stylesheet" > <link rel="stylesheet" href="./basic_01_files/custom.css" rel="external nofollow" ></head> <body> <div id="app">  <div class="row">   <div class="col-xs-offset-2 col-xs-8">    <div class="page-header">     <h2>Router Basic - 01</h2>    </div>   </div>  </div>  <div class="row">   <div class="col-xs-2 col-xs-offset-2">    <div class="list-group">           <router-link class="list-group-item" to="/home">Go to Foo</router-link>     <router-link class="list-group-item" to="/about">Go to Bar</router-link>    </div>   </div>   <router-view></router-view>  </div> </div> <template id="home">  <div>   <h1>Home</h1>   <p>{{msg}}</p>  </div> </template>  <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script> <script src="https://cdn.bootcss.com/vue-router/2.7.0/vue-router.min.js"></script> <script>   var todoItem = Vue.extend({  data: function() {   return {    todoData: [     { id: 0, text: '蔬菜' },     { id: 1, text: '奶酪' },     { id: 2, text: '隨便其它什么人吃的東西' }    ]   };  },  template: `  <ul>   <li v-for='(d, i) in todoData' :key="i">    {{ d.text }}   </li>  </ul> `,  });  var t_test = Vue.extend({  data:function(){   return {    msg:"hello,test"   };  },  template:"#home"   }  );    // Home = { template: '<div>foo</div>' } // About = { template: '<div>bar</div>' }  routes = [  { path: '/home', component: t_test },  { path: '/about', component: todoItem } ]  router = new VueRouter({  routes: routes // (縮寫)相當于 routes: routes });  app = new Vue({  router: router }).$mount('#app'); </script></body> </html>

如果不需要固定的導航鏈接,可以把router-link放在模板里面:

<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>abc</title> <script src="https://unpkg.com/vue/dist/vue.js"></script> <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script></head> <body> <div id="app">  <h1>Hello App!</h1>     <!-- 路由出口 -->  <!-- 路由匹配到的組件將渲染在這里 -->  <router-view>     </router-view> </div></body><script type="text/javascript">// 0. 如果使用模塊化機制編程,導入 Vue 和 VueRouter,要調用 Vue.use(VueRouter) // 1. 定義(路由)組件。// 可以從其他文件 import 進來const Foo = { template: '<router-link to="/bar">Go to Bar</router-link>' }const Bar = { template: '<router-link to="/foo">Go to Foo</router-link>' } // 2. 定義路由// 每個路由應該映射一個組件。 其中"component" 可以是// 通過 Vue.extend() 創建的組件構造器,// 或者,只是一個組件配置對象。// 我們晚點再討論嵌套路由。const routes = [ { path: '/foo', component: Foo }, { path: '/bar', component: Bar }] // 3. 創建 router 實例,然后傳 `routes` 配置// 你還可以傳別的配置參數, 不過先這么簡單著吧。const router = new VueRouter({ routes // (縮寫)相當于 routes: routes}) // 4. 創建和掛載根實例。// 記得要通過 router 配置參數注入路由,// 從而讓整個應用都有路由功能const app = new Vue({ router // (縮寫)相當于 router: router }).$mount('#app') // 現在,應用已經啟動了!</script> </html>

進去的時候打網址

xxx/xx.html#/foo 或 xxx/xx.html#/bar

就可以實現foo和bar模板之間互相跳轉

也可以設置默認路由:

const routes = [ { path: '/', component: Bar }, { path: '/foo', component: Foo }, { path: '/bar', component: Bar }, ]

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹凤县| 谷城县| 吉安市| 绍兴县| 新津县| 衡阳县| 安远县| 孟州市| 建湖县| 南漳县| 清流县| 神池县| 河北区| 丽江市| 三门县| 普陀区| 山东| 东源县| 谷城县| 大关县| 太保市| 微山县| 航空| 海伦市| 龙山县| 英山县| 蒙自县| 嘉祥县| 岐山县| 特克斯县| 额尔古纳市| 基隆市| 盐亭县| 宁城县| 清水县| 嵊泗县| 平和县| 磴口县| 南丰县| 醴陵市| 麻城市|