vue筆記-19(vue路由參數(shù)和嵌套路由)

  • 路由規(guī)則中定義參數(shù)
    1. 使用查詢參數(shù)則不需要修改path,調(diào)用方式<router-link to="/login?id=1">貌踏,在組件模板中使用this.$route.query.id獲取
    2. 使用路徑變量傳參帚称,需要修改path,如”/login/:id“旧困。調(diào)用方式<router-link to="/login/1">,使用this.$route.params.id
    3. 代碼demo
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>02vue-router路由參數(shù)</title>
      <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
      <script src="./lib/vue-router.js"></script>
    
      <!-- routerlink默認(rèn)選中樣式為router-link-active -->
      <style>
          .router-link-active{
              color:red;
              background-color: green;
              font-size: 20px;
          }
    
          .v-enter,
          .v-leave-to{
              opacity: 0;
              transform: translateX(150px)
          }
    
          .v-enter-active,
          .v-leave-active{
              transition: all 0.5s ease;
          }
      </style>
    </head>
    
    <body>
      <div id="app">
          <!-- 1. 使用查詢參數(shù)方式傳參紊选,不用修改vue-router中的path -->
          <router-link to="/login?id=1" tag="span">登錄</router-link>
    
          <!-- 2. 使用路徑變量方式傳參梭纹,需要修改vue-router中的path -->
          <router-link to="/register/1" tag="span">注冊(cè)</router-link>
    
          <!--展示路由組件的元素-->
          <transition mode="out-in">
              <router-view></router-view>
          </transition>
      </div>
    
      <template id="login">
          <div>
              <br/>
              用戶名:<input type="text" name="username" id="username"><br/>
              密碼:<input type="text" name="password" id="password"><br />
              <input type="button" value="登錄"><br />
              this is the login page.the transform param is {{this.$route.query.id}}
          </div>
      </template>
    
      <template id="register">
          <div>
              <br />
              用戶名:<input type="text" name="username" id="username"><br />
              密碼:<input type="text" name="password" id="password"><br />
              確認(rèn)密碼:<input type="text" name="password" id="password"><br />
              <input type="button" value="注冊(cè)"><br />
              this is the register page.the transform param is {{this.$route.params.id}}
          </div>
      </template>
    
      <script>
          //定義VueRouter變量
          var routerObj = new VueRouter({
              routes: [
                  {
                      path: '/login',
                      component: {
                          template: '#login'
                      } //通過(guò)component指定路由跳轉(zhuǎn)到的組件
                  }, {
                      path: '/register/:id',
                      component: {
                          template: '#register'
                      }
                  }
              ]
          })
    
          var vm = new Vue({
              el: '#app',
              data: {},
              methods: {},
              router: routerObj
          })
      </script>
    </body>
    </html>
    
  • 路由的嵌套
    1. 在vue-router對(duì)象里定義children屬性
    2. 子路由路徑地址最好使用”父路由名/子路由名“的方式定義跳轉(zhuǎn)路由路徑
    3. 在子路由children里定義的path, 最好不要帶有/前綴,否則永遠(yuǎn)以根路徑開(kāi)始請(qǐng)求,這樣不方便我們用戶去理解URL地址
    4. 代碼demo
     <!DOCTYPE html>
     <html lang="en">
     <head>
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <title>04vue-router路由嵌套</title>
     <script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
     <script src="./lib/vue-router.js"></script>
    </head>
    <body>
     <div id="app">
         <router-link to="/account">賬戶</router-link>
    
         <!-- 顯示父路徑 /account 展示跳轉(zhuǎn)組件的頁(yè)面 -->
         <router-view></router-view>
     </div>
    
     <template id="account">
         <div>
             <router-link to="/account/login">登錄</router-link>
             <router-link to="/account/register">注冊(cè)</router-link>
             
             <!-- 需要在父模板里定義 router-view 用于展示子路徑跳轉(zhuǎn)組件顯示的頁(yè)面 -->
             <router-view></router-view> 
         </div>
     </template>
    
     <template id="login">
         <div>
             <br />
             用戶名:<input type="text" name="username" id="username"><br />
             密碼:<input type="text" name="password" id="password"><br />
             <input type="button" value="登錄"><br />
         </div>
     </template>
    
     <template id="register">
         <div>
             <br />
             用戶名:<input type="text" name="username" id="username"><br />
             密碼:<input type="text" name="password" id="password"><br />
             確認(rèn)密碼:<input type="text" name="password" id="password"><br />
             <input type="button" value="注冊(cè)"><br />
         </div>
     </template>
    
     <script>
         //定義VueRouter變量
         var routerObj = new VueRouter({
             routes: [{
                 path: "/account",
                 component: {
                     template: '#account'
                 },
                 children: [{
                     path: 'login', //注意這里的路徑不能以 "/" 開(kāi)頭
                     component: {
                         template: '#login'
                     }
                 }, {
                     path: 'register',
                     component: {
                         template: '#register'
                     }
                 }]
             }]
         })
    
         var vm = new Vue({
             el: '#app',
             data: {},
             methods: {},
             router: routerObj
         })
     </script>
    </body>
    </html>
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末乡洼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子匕坯,更是在濱河造成了極大的恐慌束昵,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葛峻,死亡現(xiàn)場(chǎng)離奇詭異锹雏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)泞歉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門逼侦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人腰耙,你說(shuō)我怎么就攤上這事〔颍” “怎么了挺庞?”我有些...
    開(kāi)封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)稼病。 經(jīng)常有香客問(wèn)我选侨,道長(zhǎng)掖鱼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任援制,我火速辦了婚禮戏挡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晨仑。我一直安慰自己褐墅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布洪己。 她就那樣靜靜地躺著妥凳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪答捕。 梳的紋絲不亂的頭發(fā)上逝钥,一...
    開(kāi)封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音拱镐,去河邊找鬼艘款。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沃琅,可吹牛的內(nèi)容都是我干的磷箕。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼阵难,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼岳枷!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起呜叫,我...
    開(kāi)封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤空繁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后朱庆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盛泡,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年娱颊,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了傲诵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡箱硕,死狀恐怖拴竹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情剧罩,我是刑警寧澤栓拜,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響幕与,放射性物質(zhì)發(fā)生泄漏挑势。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一啦鸣、第九天 我趴在偏房一處隱蔽的房頂上張望潮饱。 院中可真熱鬧,春花似錦诫给、人聲如沸香拉。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缕溉。三九已至,卻和暖如春吃型,著一層夾襖步出監(jiān)牢的瞬間证鸥,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工勤晚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枉层,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓赐写,卻偏偏與公主長(zhǎng)得像鸟蜡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挺邀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344