2018-09-25vue.router路由和路由的嵌套吁系、路由的傳參德召、vue中的ajax (axios)

一、路由

路由:vue-router 帶三方工具庫
創(chuàng)建單頁面應(yīng)用 spa (single page application)
通過不同的URL訪問不同的頁面
下載:

        npm install vue
       
       npm install vue-router

body部分:

 <div id="itany">
   <!-- 1.-->
   <router-link to='/index'>首頁</router-link>
   <router-link to='/detail'>詳情頁</router-link>
   <router-link to='/about'>關(guān)于我們</router-link>
 <!-- 盛放導(dǎo)航對(duì)應(yīng)的內(nèi)容-->
  <router-view></router-view>

js部分:

<script src="js/vue.js"></script>
<script src="js/vue-router.js"></script>
<script>
   //  2.創(chuàng)建組件
    var Index={
        template:`
            <h1>這是首頁</h1>
        `
    }
    
    var Detail={
        template:`
            <h1>這是詳情頁</h1>
        `
    }
    
    var About={
        template:`
            <h1>這是關(guān)于我們</h1>
        `
    }
    
    
   // 3.配置路由
    const routes=[
        {path:'/',component:Index},
        {path:'/index',component:Index},
        {path:'/detail',component:Detail},
        {path:'/about',component:About}
    ]
    
    
  // 4.創(chuàng)建一個(gè)路由實(shí)例
    
    const router=new VueRouter({
        routes:routes,
        linkActiveClass:'active'
    })
    
    
   // 5.把路由實(shí)例掛載到vue實(shí)例上
    
    new Vue({
        el:"#itany",
        router:router
    })
</script>
路由.png

二汽纤、路由的嵌套

body部分:

<div id="itany">
   <router-link to='/index'>首頁</router-link>
   <router-link to='/user'>用戶頁</router-link>
   <router-view></router-view>
</div>

js部分:

<script src="js/vue.js"></script>
<script src="js/vue-router.js"></script>
<script>
//  2.創(chuàng)建組件
    var Index={
        template:`
            <h1>這是首頁</h1>
        `
    }
    var User={
        template:`
            <div>
                <h1>這是用戶頁</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è)頁面</h3>
        `
    }
    var Login={
        template:`
            <h3>登錄頁面</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
    })
    new Vue({
        el:"#itany",
        router:router
    })
</script>
路由的嵌套.png

三上岗、路由的傳參
路由的傳參:
查詢字符串:
/user/regist?uname=jack&&upwd=123
接收:{{route.query}} rest風(fēng)格傳參 /user/login/rose/456 接收: {{route.params}}
-->

body部分:

 <div id="itany">
   <router-link to='/index'>首頁</router-link>
   <router-link to='/user'>用戶頁</router-link>
   <router-view></router-view>
 </div>

js部分:

<script src="js/vue.js"></script>
<script src="js/vue-router.js"></script>
<script>
// 2.創(chuàng)建組件
    var Index={
        template:`
            <h1>這是首頁</h1>
        `
    }
    var User={
        template:`
            <div>
                <h1>這是用戶頁</h1>
                <ul>
                     <li>
                           <router-link to='/user/regist?uname=jack&upwd=123'>這是注冊(cè)頁面
                          </router-link>
                     </li>
                    <li><router-link to='/user/login/rose/456'>這是登錄頁面</router-link></li>
                </ul>
                <router-view></router-view>
            </div>
        `
    }
  //  字符串傳參 /user/regist?uname=jack&upwd=123
   //  接收       {{$route.query}}
    
  // rest傳參   /user/login/rose/456   
 //  配置路由:{path:'login/:userName/:password',component:Login}
// 接收:{{$route.params}}
    
    var Regist={
        template:`
            <div>
                <h3>注冊(cè)頁面</h3>
                <a href="#">{{$route.query}}</a>
                <ul>
                    <li>{{$route.query.uname}}</li>
                    <li>{{$route.query.upwd}}</li>
                </ul>
            </div>
        `
    }
    var Login={
        template:`
            <div>
                <h3>登錄頁面</h3>
                <a href="#">{{$route.params}}</a>
                <ul>
                    <li>{{$route.params.userName}}</li>
                    <li>{{$route.params.password}}</li>
                </ul>
            </div>
    `
    }
    //  3.配置路由
    const routes=[
        {path:'/',component:Index},
        {path:'/index',component:Index},
        {
            path:'/user',
            component:User,
            children:[
                {path:'regist',component:Regist},
                {path:'login/:userName/:password',component:Login}
            ]
        }
    ]
 //4.創(chuàng)建路由實(shí)例
    const router=new VueRouter({
        routes:routes,
        linkActiveClass:'active'
    })
    new Vue({
        el:"#itany",
        router:router
    })
</script>

效果圖:

路由的傳參.png

四、vue中的ajax (axios)

vue中的ajax 插件
下載axios:
npm install axios
1.0 vue-resource
2.0 axios

 安裝http-server
     npm install http-server -g   
         
 使用http-server 開啟一個(gè)服務(wù)器      

body部分:

<div id='app'>
 <!--1.-->
   <router-link to='/index'>首頁</router-link>
   <router-link to='/detail'>詳情頁</router-link>
    <!--盛放導(dǎo)航對(duì)應(yīng)的內(nèi)容-->
   <router-view></router-view>
</div>

js部分:

<script src='js/vue.js'></script>
<script src='js/vue-router.js'></script>
<script src='js/axios.js'></script>
<script>
   //2. 創(chuàng)建組件
    var Index={
        template:`
           <h1>這是首頁</h1>
         `
    }
    
    var Detail={
        template:`
         <div>
          <h1>我是詳情頁</h1>
           <table border=1 cellspacing=0>
            <thead>
                <tr>
                   <td>編號(hào)</td>
                   <td>品名</td>
                   <td>單價(jià)</td>
                   <td>數(shù)量</td>
                   <td>小計(jì)</td>
                </tr>
            </thead>
            <tbody>
               <tr v-for="value in fruList">
                   <td>{{value.num}}</td>
                   <td>{{value.pname}}</td>
                   <td>{{value.price}}</td>
                   <td>{{value.count}}</td>
                   <td>{{value.sub}}</td>
               </tr>
            </tbody>
           </table>
         </div>
         `,
        data:function(){
            return{
                fruList:null
            }
        },
        mounted:function(){
            var self=this;
            axios({
                method:'get',//發(fā)送數(shù)據(jù)的方式
                url:'fruit.json'
            }).then(function(resp){//請(qǐng)求成功
    //  console.log(resp)
                console.log(resp.data)
                 self.fruList=resp.data
            }).catch(function(err){//請(qǐng)求失敗
                console.log(err)
            })
        }
    }
    
    //3.配置路由
    
    const routes=[
        {path:'/',component:Index},
        {path:'/index',component:Index},
        {path:'/detail',component:Detail}
    ]
    
    //4.創(chuàng)建一個(gè)路由實(shí)例
    const router=new VueRouter({
        routes:routes,
        linkActiveClass:"active"
    })
    //5.把路由實(shí)例掛在到vue實(shí)例上 
   new Vue({
       el:'#app',
       router:router
   })
   
</script>

json部分:

  [
     {
    "num":1,
    "pname":"apple",
    "price":3,
    "count":4,
    "sub":12
},
{
    "num":2,
    "pname":"pear",
    "price":4,
    "count":5,
    "sub":20
},
 {
     "num":3,
    "pname":"orange",
    "price":5,
    "count":6,
    "sub":30
  }
]

鏈接網(wǎng)址:
http://192.168.1.108:8080
http://127.0.0.1:8080

效果圖:


axios.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蕴坪,一起剝皮案震驚了整個(gè)濱河市肴掷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌背传,老刑警劉巖呆瞻,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異径玖,居然都是意外死亡痴脾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門梳星,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赞赖,“玉大人滚朵,你說我怎么就攤上這事∏坝颍” “怎么了始绍?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長话侄。 經(jīng)常有香客問我,道長学赛,這世上最難降的妖魔是什么年堆? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮盏浇,結(jié)果婚禮上变丧,老公的妹妹穿的比我還像新娘。我一直安慰自己绢掰,他們只是感情好痒蓬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滴劲,像睡著了一般攻晒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上班挖,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天鲁捏,我揣著相機(jī)與錄音,去河邊找鬼萧芙。 笑死给梅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的双揪。 我是一名探鬼主播动羽,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼渔期!你這毒婦竟也來了运吓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤擎场,失蹤者是張志新(化名)和其女友劉穎羽德,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體迅办,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宅静,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了站欺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片姨夹。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纤垂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出磷账,到底是詐尸還是另有隱情峭沦,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布逃糟,位于F島的核電站吼鱼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绰咽。R本人自食惡果不足惜菇肃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望取募。 院中可真熱鬧琐谤,春花似錦、人聲如沸玩敏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旺聚。三九已至织阳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間翻屈,已是汗流浹背陈哑。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伸眶,地道東北人惊窖。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像厘贼,于是被迫代替她去往敵國和親界酒。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容