亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > 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 }, ]

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美特级www| 亚洲国产成人91精品| 性欧美暴力猛交69hd| 日韩女在线观看| 97精品视频在线观看| 亚洲综合精品伊人久久| 亚洲欧洲第一视频| 神马久久桃色视频| 欧美激情亚洲激情| 国产福利成人在线| 日本精品视频在线观看| 久久精品亚洲94久久精品| 亚洲成年网站在线观看| 91探花福利精品国产自产在线| 91久久精品久久国产性色也91| 日韩成人免费视频| 久久久国产精品一区| 久久视频国产精品免费视频在线| 欧美裸体xxxx极品少妇软件| 亚洲亚裔videos黑人hd| 国产精品狼人色视频一区| 欧美性猛交xxxx乱大交3| 色综合导航网站| 日韩av免费在线播放| 欧美激情啊啊啊| 一区二区三区视频免费在线观看| 久久久久久久久网站| 色爱精品视频一区| 国内精品久久久久久久久| 亚洲欧美成人精品| 国产精品第七十二页| 欧美福利视频在线| 欧美国产视频一区二区| 欧美男插女视频| 丝袜美腿亚洲一区二区| 久久天堂av综合合色| 亚洲色图av在线| 国产成人97精品免费看片| 国产欧美日韩专区发布| 色樱桃影院亚洲精品影院| 国产精品va在线播放我和闺蜜| 日韩欧美一区视频| 成人在线一区二区| 亚洲免费视频在线观看| 亚洲国产精品专区久久| 一夜七次郎国产精品亚洲| 5566日本婷婷色中文字幕97| 亚洲一区亚洲二区亚洲三区| 欧美美最猛性xxxxxx| 亚洲欧美日韩在线一区| 亚洲大尺度美女在线| 欧美激情中文字幕在线| 亚洲精品一二区| 国产亚洲成av人片在线观看桃| 中文字幕日韩精品在线观看| 亚洲综合av影视| 成人激情免费在线| 日韩av在线不卡| 亚洲精品福利免费在线观看| 国产欧亚日韩视频| 日韩久久免费电影| 亚洲一级黄色av| 国产精品69精品一区二区三区| 日韩av网站电影| 欧美成人在线影院| 亚洲电影免费观看高清完整版在线观看| 亚洲成avwww人| 97在线视频免费观看| 啪一啪鲁一鲁2019在线视频| 久久久久免费精品国产| 高清欧美性猛交xxxx黑人猛交| 欧美野外猛男的大粗鳮| 国产一区二区三区网站| 欧美限制级电影在线观看| 欧美日韩另类在线| 欧美成人免费小视频| 亚洲精品v天堂中文字幕| 97国产精品视频人人做人人爱| 欧美高清视频在线观看| 韩国欧美亚洲国产| 久久香蕉精品香蕉| 国产精品视频网| 亚洲高清久久久久久| 日韩中文字幕亚洲| 欧美怡红院视频一区二区三区| 精品色蜜蜜精品视频在线观看| 国产精品老牛影院在线观看| 欧美一级片一区| 91精品久久久久久久久久| 亚洲在线www| 成人网页在线免费观看| 最近2019中文字幕mv免费看| 欧美日韩亚洲高清| 亚洲日本欧美中文幕| 亚洲高清一二三区| www.日韩欧美| 另类天堂视频在线观看| 日韩免费在线播放| 亚洲国产精品久久精品怡红院| 欧美猛男性生活免费| 欧美日韩一区二区精品| 亚洲欧美日韩国产精品| 一本大道久久加勒比香蕉| 亚洲色图偷窥自拍| 日韩在线不卡视频| 国产丝袜一区视频在线观看| 最新国产精品亚洲| 亚洲人高潮女人毛茸茸| 欧美裸体xxxxx| 蜜臀久久99精品久久久无需会员| 久久成人精品一区二区三区| 国产精品成人在线| 欧美性高跟鞋xxxxhd| 欧美激情精品在线| 一区三区二区视频| 国产精品手机播放| 欧美高清在线播放| 国内精品视频一区| 久久久久久尹人网香蕉| 91成人性视频| 精品国产区一区二区三区在线观看| yw.139尤物在线精品视频| 欧美午夜丰满在线18影院| 日韩欧美中文免费| 成人精品久久久| 精品国产乱码久久久久久天美| 亚洲深夜福利视频| 大胆欧美人体视频| 久久手机精品视频| 日韩小视频在线| 国产亚洲人成a一在线v站| 中国人与牲禽动交精品| 国产97在线观看| 岛国av一区二区在线在线观看| 国产va免费精品高清在线| 久久中国妇女中文字幕| 日韩在线精品一区| 国产日韩精品在线| 国产精品激情av在线播放| 久久久久久成人| 欧美成人精品h版在线观看| 国产精品观看在线亚洲人成网| 欧美乱妇40p| 国内精品久久久| 成人444kkkk在线观看| 亚洲精品视频在线播放| 中文字幕久久精品| 亚洲精品网站在线播放gif| 亚洲福利精品在线| 欧美大尺度电影在线观看| 日韩在线视频网站| 国产精品日韩欧美| 91po在线观看91精品国产性色| 欧美日韩美女在线观看| 高清欧美性猛交xxxx黑人猛交| 国产精品免费视频久久久| 日韩中文字幕在线视频| 这里只有视频精品| 韩国福利视频一区| 亚洲黄色片网站| 亚洲欧洲激情在线| 成人福利在线观看| 国产成人精彩在线视频九色| 91麻豆国产精品|