Vue-08-xiaoming

2018-09-24

說(shuō)到Vue.js常用插件,今天我們就一起來(lái)學(xué)習(xí)他的核心插件路由vue-router)。
①Vue.js 路由允許我們通過(guò)不同的 URL 訪問(wèn)不同的內(nèi)容。
②通過(guò) Vue.js 可以實(shí)現(xiàn)多視圖的單頁(yè)Web應(yīng)用(single page web application,SPA);(通俗來(lái)說(shuō)就是:創(chuàng)建單頁(yè)面SPA)。

firstly:安裝

①直接下載/CDN:https://unpkg.com/vue-router/dist/vue-router.js。
②NPM:打開(kāi)Git Bash Here,輸入指令npm install vue-router.。

secondly:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
 <a></a>
  <div id='app'>
     <!--1.創(chuàng)建一個(gè)鏈接-->
     <!-- 使用 router-link 組件來(lái)導(dǎo)航. -->
    <!-- 通過(guò)傳入 `to` 屬性指定鏈接. -->
    <!-- <router-link> 默認(rèn)會(huì)被渲染成一個(gè) `<a>` 標(biāo)簽 -->
     <router-link to='/home'>首頁(yè)</router-link>
     <router-link to='/user'>用戶頁(yè)</router-link> 
    <!-- 路由出口 -->
    <!-- 路由匹配到的組件將渲染在這里 -->
    <!-- 盛放鏈接對(duì)應(yīng)的內(nèi)容-->
      <router-view></router-view>
  </div>
   <script src='js/vue.js'></script> 
   <script src='js/vue-router.js'></script>
   <script>
       //2.創(chuàng)建組件
       var Home={
           template:`
             <h1>這是首頁(yè)</h1>
           `
       }
       
       var User={
           template:`
                <h1>這是用戶頁(yè)</h1>
            `
       }
       
       //3.配置路由
       const  routes=[
           {path:'/home',component:Home},
           {path:'/user',component:User}
       ]
       
       //4.創(chuàng)建路由實(shí)例
      //創(chuàng)建 router 實(shí)例,然后傳 `routes` 配置
       const router=new VueRouter({
           //也可以簡(jiǎn)寫(xiě)為routers
           routes:routes
       })
       
       //5.路由實(shí)例掛載到vue實(shí)例上
       // 記得要通過(guò) router 配置參數(shù)注入路由,
       // 從而讓整個(gè)應(yīng)用都有路由功能
       new Vue({
           el:'#app',
           router:router
       })
    </script>
</body>
</html>
之后,我們一起來(lái)看一下其中的細(xì)節(jié):
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
/* 兩種方式都可以改變鏈接字體的顏色*/
/*
        .router-link-active{
            color:red;
        } 
*/
        .active{
            color:red;
        }
    </style>
</head>
<body>
 <a></a>
  <div id='app'>
     <!--1.-->
     <router-link to='/home'>首頁(yè)</router-link>
     <router-link to='/user'>用戶頁(yè)</router-link> 
     
    <!-- 盛放鏈接對(duì)應(yīng)的內(nèi)容-->
      <router-view></router-view>
  </div>
   <script src='js/vue.js'></script> 
   <script src='js/vue-router.js'></script>
   <script>
       //2.創(chuàng)建組件
       var Home={
           template:`
             <h1>這是首頁(yè)</h1>
           `
       }
       
       var User={
           template:`
                <h1>這是用戶頁(yè)</h1>
            `
       }
       
       //3.配置路由
       const  routes=[
       //添加一個(gè)新的路徑,也就是第一個(gè),當(dāng)頁(yè)面加載完成時(shí)直接顯示
           {path:'/',component:Home},
           {path:'/home',component:Home},
           {path:'/user',component:User}
       ]
       
       //4.創(chuàng)建路由實(shí)例
       const router=new VueRouter({
           routes:routes,
           linkActiveClass:'active'
       })
       
       //5.路由實(shí)例掛載到vue實(shí)例上
       new Vue({
           el:'#app',
           router:router
       })
    </script>
</body>
</html>
效果圖:
路由.png
接下來(lái)的就是路由的嵌套:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
  <div id='app'>
   <!--1.-->
   <router-link to='/index'>首頁(yè)</router-link>
   <router-link to='/user'>用戶頁(yè)</router-link>
   <router-view></router-view>
  </div>
   <script src='js/vue.js'></script> 
   <script src='js/vue-router.js'></script>
   <script>
       //2.創(chuàng)建組件
       var  Index={
           template:`
             <h1>這是首頁(yè)</h1>
           `
       }
       var User={
           template:`
           <div>
             <h1>這是用戶頁(yè)</h1>
             <ul>
               <li>
                  <router-link to='/user/regist'>注冊(cè)</router-link>
               </li> 
                <li>
                  <router-link to='/user/login'>登錄</router-link>
               </li>
            </ul>
            <router-view></router-view>
           </div>
         `
       }
       
       
       var Regist={
           template:`
             <h3>這是注冊(cè)頁(yè)</h3>
          `
       }
       
        var Login={
           template:`
             <h3>這是登錄頁(yè)</h3>
          `
       }
       
       //3.配置路由
       const routes=[
           {path:'/',component:Index},
           {path:'/index',component:Index},
           {
               path:'/user',
               component:User,
               children:[
                   {path:'regist',component:Regist},
                   {path:'login',component:Login}
               ]
           }
       ]
       
       //4.創(chuàng)建路由實(shí)例
       const router=new VueRouter({
           routes:routes
       })
       
       //5.把路由實(shí)例掛載到vue實(shí)例上
      new Vue({
          el:'#app',
          router:router//注冊(cè)路由
      })
      </script>
</body>
</html>

效果圖:
路由02.png
路由03.png
路由04.png

QAQ:

①v-html

v-html='',可以解析標(biāo)簽

更新元素的innerHTML 。注意:內(nèi)容按普通 HTML 插入 - 不會(huì)作為 Vue 模板進(jìn)行編譯 。如果試圖使用 v-html 組合模板,可以重新考慮是否通過(guò)使用組件來(lái)替代。

<div v-html="html"></div>

②v-text

v-text='',可以輸出,但不可以解析標(biāo)簽

更新元素的textContent。如果要更新部分的 textContent ,需要使用{{ Mustache }}插值。

<span v-text="msg"></span>
<span>{{msg}}</span>

③v-once

只綁定一次(直接寫(xiě),不需要表達(dá)式)==>

只渲染元素和組件一次。隨后的重新渲染,元素/組件及其所有的子節(jié)點(diǎn)將被視為靜態(tài)內(nèi)容并跳過(guò)。這可以用于優(yōu)化更新性能。

④v-pre

原樣輸出(直接寫(xiě),不需要表達(dá)式)

跳過(guò)這個(gè)元素和它的子元素的編譯過(guò)程。可以用來(lái)顯示原始 Mustache 標(biāo)簽。跳過(guò)大量沒(méi)有指令的節(jié)點(diǎn)會(huì)加快編譯。

⑤v-cloak

用屬性選擇器:
css:[v-cloak]{
display:none;
}
html:<div v-cloak>
{{ message }}
</div>

QAQ:

var,let,const的異同==>

1.var定義的變量,沒(méi)有塊的概念,可以跨塊訪問(wèn), 不能跨函數(shù)訪問(wèn)。
2.let定義的變量,只能在塊作用域里訪問(wèn),不能跨塊訪問(wèn),也不能跨函數(shù)訪問(wèn)。
3.const用來(lái)定義常量,使用時(shí)必須初始化(即必須賦值),只能在塊作用域里訪問(wèn),而且不能修改

路由今天就學(xué)到這里,我們下期再見(jiàn)QAQ~

·

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容