vue-1.0-4.0/promis4.3異步請求/父子組件1.0/動態(tài)路由3.4/懶加載3.5/導(dǎo)航守衛(wèi)3.7/-修改文件路徑的引用問題......

1--------------------父子組件傳遞關(guān)系

子組件:props:{

? ? ? ? ? banners:{

? ? ? ? ? ? type:Array,

? ? ? ? ? ? default(){

? ? ? ? ? ? ? return[]

? ? ? ? ? ? }

? ? ? ? ? }

? ? ? }

父組件: <HomeSwper :banners="banners"></HomeSwper>

2. 視口模式

npm install postcss-px-to-viewport --save-dev? 打包時依賴

postcss.config.js

------------

module.exports={

plugins:{

? "postcss-px-to-viewport":{

? viewportWidth:375,? ? //視窗的寬度科阎,對應(yīng)的是我們設(shè)計稿的寬度

? viewportHeight:667,? //視窗的高度羞迷,對應(yīng)的是我們設(shè)計稿的高度

? unitPrecision:5,? ? ? ? ? //指定‘px’轉(zhuǎn)換為視窗單位值的小數(shù)位數(shù)

? viewportUnit:'vw',? ? ? //指定需要轉(zhuǎn)換成的視窗單位栅炒,建議使用vm

? selectorBlackList:['ignore','tab-bar','tab-bar-item'],? //指定不需要轉(zhuǎn)換的類

? minPixelValue:1,? //小于或等于‘1px’不轉(zhuǎn)換為視窗單位

? mediaQuery:false,? //允許在媒體查詢中轉(zhuǎn)換‘px’

? exclude:[/TabBar/]? //正則表達式 融撞,除TabBar 這個所有匹配文件

? }

}

}

3-----Class樣式有關(guān)

<router-link tag="button" replace active-class="active">首頁<router-link/>? ? tag變?yōu)橹付ǖ臉撕? replace不可以返回 active-class="active"指定點擊樣式

3.1---在路由index.js中添加mode:history? ? ?默認是hash模式

3.2----在router中的index.js->添加:linkActiveClass:'active'

? .active{

? color:red

}

3.3----push按壓式堆疊

this.$router.push('/home')? 通過代碼修改路由 所以不需要加這個標簽<router-link><router-link/>

? ? ? ? ? ? ? ? ? ? ? ? ? .replace('/home')

3.4-----動態(tài)路由:

? ? ? ? ? ? <router-link :to="'/home/'+userid">首頁<router-link/>? {path:'/home/:userid',component:Home}

? ? ? ? ? 在home.vue中獲取相應(yīng)的id? ? 這里的id是對應(yīng) {path:'/home/:userid',component:Home}這里面的userid? ? ? ? ? ? ?$route:誰活躍就拿到誰

? ? ? ? ? ? ? ? ? ? ? computed:{

? ? ? ? ? ? ? ? ? ? ? ? ? ? userid(){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return this.$route.params.userid

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }

3.4.1-----動態(tài)路由 query的使用及例子

? ? ? ? ? <router-link :to="{path:'/profile',query:{name:'why',age:18,height:1.88}}"><router-link/>?

? ? ? ? ?--->地址形式localhost:8080/profile/userid?name:'why',age:18,height:1.88

? ? ? ? ? ? 在profile.vue取出name:'why',age:18,height:1.88 所對應(yīng)的值? ? ? {{$route.query}}

? ? ? ? ? ? computed:{

? ? ? ? ? ? ? ? ? ? ? ? ? ? userid(){

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? return this.$route.query.name

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }

3.4.2---------APP.vue

? ? ? ? ? <button @click="userClick">用戶</button/>

? ? ? ? ? <button @click="profileClick">檔案</button/>

? ? ? ? ? data(){

? ? ? ? ? ? ? return{? userId:'zhangsan' }

? ? ? ? ? }

? ? ? ? ? method:{

? ? ? ? ? ? userClick(){ this.$router.push('/user/' + this.userId) }

? ? ? ? ? ? profileClick(){

? ? ? ? ? ? ? ? ? this.$router.push({

? ? ? ? ? ? ? ? ? ? ? path:'/profile',

? ? ? ? ? ? ? ? ? ? ? query:{

? ? ? ? ? ? ? ? ? ? ? ? ? name:'why',age:18,height:1.88

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? })

? ? ? ? ? ? ? }

? ? ? }

3.5-------懶加載麸粮,需要用到時,再調(diào)用

? ? const Home =()=>import('../components/Home')

? 第一種模式:? {

? ? path:'/home',

? ? component:Home? ? ? ? ? ? ? ? ?第二種模式:component:()=>import('../components/Home')

? }

3.6------路由嵌套

? {

? ? path:'/home',

? ? component:Home锈至,

? ? children:[

? ? ? {

? ? ? ? path:'',

? ? ? ? redirect:'news'

? ? ? },

? ? ? {

? ? ? ? ? path:'news',

? ? ? ? ? component:()=>import('../component/HomeNews')

? ? ? },

? ? ? {

? ? ? ? ? path:'message',

? ? ? ? ? component:()=>import('../component/HomeMessage')

? ? ? },

? ? ]? ? ? ? ? ? ?

? }

在Home.vue中配置路由 :<router-link to="/home/new">消息<router-link/>? ? < router-view>< router-view/>

3.7--------導(dǎo)航守衛(wèi):監(jiān)聽頁面跳轉(zhuǎn)? 在跳轉(zhuǎn)過程經(jīng)行一些操作? ? ? ? 全局守衛(wèi)

? ? created(){} 組件創(chuàng)建完

? ? mounted(){} 掛載在dom 時

? ? updated(){}? 界面發(fā)生變化

? destroyed(){}

? -- activated(){}? 當頁面處于活躍? ? ? ? ? ? ? ? ? ? ? -》這兩個函數(shù)部脚,只有該組件被保持了狀態(tài)使用了keep-alive時,才有效

? --deactived(){}? 當頁面處于不活躍? ? ? ? ? ? ? ? ? -》

? router->index.js

? ? ? {

? ? ? ? ? path:'/profile',

? ? ? ? ? component:Profile,

? ? ? ? ? meta:{

? ? ? ? ? ? title:'檔案'

? ? ? ? ? }

? ? ? }

? 前置

守衛(wèi)(guard)/鉤子(hook)? 跳轉(zhuǎn)之前

? router.beforeEach((to,from,next) =>{

? ? 從from跳轉(zhuǎn)到to

? ? document.title = to.matched[0].meta.title? ? ? ? ? ? ? ? meta:元數(shù)據(jù) 描述數(shù)據(jù)的數(shù)據(jù)

? ? next()

? })

? 后置守衛(wèi)

? router.afterEach((to,from) =>{


? })

3.7-------組件導(dǎo)航守衛(wèi)? Home.vue

? beforeRouteLeave? ? ? ? ? ? ? ? ? 離開頁面之前

? beforeRouteLeave(to,from,next){

? ? this.path = this.$route.path;

? ? next()

? }?

3.8----------keep-alive? 組件保留狀態(tài)

? ? keep-alive? 組件保留狀態(tài)? ->? ? <keep-alive><keep-view/><keep-alive/> 使created(){}和destroyed(){} 不會被頻繁創(chuàng)建和銷毀

? ? ? include? 會被緩存? ? ? ?

? ? ? exclude? 不會被緩存? ? ? ? ? ? ? ? ? <keep-alive exclude="Profile,User"><keep-view/><keep-alive/>? 排除Profile.vue和User.vue 緩存


3.9-----------

? ? App.vue

? ? ? <style>? ? ? ? ? ? 在style里面引用樣式用@? ? ? 除此之外用import Home from ".."?

? ? ? ? ? @import "./assets/css/base.css"

? ? <style/>

? ? 在main.js直接引用

? ? ? require("./assets/css/base.css")

4.0---------

TabBarItem.vue

? ? <slot name="item-icon"></slot>

? ? <slot name="item-text"></slot>

App.vue

? <tab-bar-item>

? ? ? <img slot="item-icon" src=".." >

? ? ? <div slot="item-text">首頁</div>

? </tab-bar-item>

4.1-----------

? 點擊相應(yīng)的按鈕 所對應(yīng)相應(yīng)的狀態(tài)(顏色)

? computed:{

? ? isActive(){

? ? ? return this.$route.path.indexof(this.path) !== -1? ? ? ? ? ? 即是true? 判斷活躍狀態(tài)的路徑是否等于當前路徑

? ? }

? }? ?

4.1.1--------

? <div :style="activeStyle"></div>

? ? data(){

? ? return{

? ? props:[

? ? ? path:String,

? ? ? activeColor:{

? ? ? ? type:String,? default:'red'

? ? ? }

? ? ]

? ? }

? }

? computed:{

? ? activeStyle(){

? ? ? return this.isActive ? {color:this.activeColor} : { }? ? ?

? ? }

? }? ?

4.2----------修改文件路徑的引用問題? 在config文件下的webpack.base.conf.js 中修改

? ? ? ? ? ? ? ? reslove:{

? ? ? ? ? ? ? ? extensions :['.js','.vue','.json'],

? ? ? ? ? ? ? ? alias:{

? ? ? ? ? ? ? ? ? ? '@':resolve('src'),

? ? ? ? ? ? ? ? ? ? ? ? ?'assets':reslove('@/assets'),? ? ? 在腳手架3.0版本以上? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'assets':reslove('src/assets'),? ?? 在腳手架2.0版本以上

? ? ? ? ? ? ? ? ? ? ? ? ? 'components':reslove('@/components')???在腳手架3.0版本以上? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?'components':reslove('@/components')???在腳手架2.0版本以上?

? ? ? ? ? ? ? ? ? ? ? ? ? .......??

? ? ? ? ? ? ? ?}?

? ? ? ? ? ? }


? ? ? ? ? ? ? ? 在src 中要加一個~符號? , 而import中不需要加

4.3----------promise? -》js異步操作有關(guān)

? 鏈式編程

? ? ? new Promise((resolve,reject)=>{

? ? ? ? ? ? ? setTimeout(()=>{

? ? ? ? ? ? ? ? resolve()

? ? ? ? ? },1000)

? ? ? }).then(()=>{

? ? ? ? 第一次拿到結(jié)果的處理代碼

? ? ? console.log('Hello world')

? ? ? return new Promise((resolve,reject)=>{

? ? ? ? ? 第二次網(wǎng)絡(luò)請求

? ? ? ? ? ? setTime(()=>{

? ? ? ? ? ? ? resolve()

? ? ? ? ? ? },1000)

? ? ? })

? ? }).then(()=>{

? ? ? console.log('Hello vue.js')


? ? ? return new Promise((reslove,reject)=>{

? ? ? ? setTime(()=>{

? ? ? ? ? ? resolve()

? ? ? ? },1000)

? ? })

? }).then(()=>{

? ? ? ? console.log('Hello js')

? ? })

4.3.1--------------異步請求數(shù)據(jù)

? ? setTime(()=>{

? ? ? ? console("Hello world")

? },1000)

4.3.2--------------

? 原始:

? ? $.ajax('url1',function(data1){

? ? ? $.ajax(data['url2'],function(data2){

? ? ? ? $.ajax(data['url3'],function(data3){

? ? ? ? ? ...

? ? ? ? console.log(data3)

? ? })

? })

})

4.3.3--------------

1.? new Promise((resolve,reject)=>{

? ? setTimeout(()=>{

? ? // 成功時候調(diào)用resolve

? ? // resolve('Hello world')

? ? 失敗時候調(diào)用reject

? ? reject('error message')

? },1000)

}).then((data)=>{

? ? console.log(data);

? }).catch(err=>{

? ? console.log(err)

? })

? 2. new Promise((resolve,reject)=>{

? ? setTimeout(()=>{

? 成功時候調(diào)用resolve

? resolve('Hello world')

? ? 失敗時候調(diào)用reject

? ? reject('error message')

? },1000)

}).then(data=>{

? console.log(data);

},error=>{

? console.log(err)

})

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市筑悴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌沼死,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崔赌,死亡現(xiàn)場離奇詭異意蛀,居然都是意外死亡耸别,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門县钥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秀姐,“玉大人,你說我怎么就攤上這事若贮∈∮校” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵谴麦,是天一觀的道長蠢沿。 經(jīng)常有香客問我,道長匾效,這世上最難降的妖魔是什么舷蟀? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮面哼,結(jié)果婚禮上野宜,老公的妹妹穿的比我還像新娘。我一直安慰自己精绎,他們只是感情好速缨,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著代乃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仿粹。 梳的紋絲不亂的頭發(fā)上搁吓,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音吭历,去河邊找鬼堕仔。 笑死,一個胖子當著我的面吹牛晌区,可吹牛的內(nèi)容都是我干的摩骨。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼朗若,長吁一口氣:“原來是場噩夢啊……” “哼恼五!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起哭懈,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤灾馒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后遣总,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睬罗,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡轨功,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了容达。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片古涧。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖花盐,靈堂內(nèi)的尸體忽然破棺而出羡滑,到底是詐尸還是另有隱情,我是刑警寧澤卒暂,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布啄栓,位于F島的核電站,受9級特大地震影響也祠,放射性物質(zhì)發(fā)生泄漏昙楚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一诈嘿、第九天 我趴在偏房一處隱蔽的房頂上張望堪旧。 院中可真熱鬧,春花似錦奖亚、人聲如沸淳梦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽爆袍。三九已至,卻和暖如春作郭,著一層夾襖步出監(jiān)牢的瞬間陨囊,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工夹攒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜘醋,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓咏尝,卻偏偏與公主長得像压语,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子编检,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

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

  • ## 框架和庫的區(qū)別?> 框架(framework):一套完整的軟件設(shè)計架構(gòu)和**解決方案**胎食。> > 庫(lib...
    Rui_bdad閱讀 2,890評論 1 4
  • SPA單頁應(yīng)用 傳統(tǒng)的項目大多使用多頁面結(jié)構(gòu),需要切換內(nèi)容的時候我們往往會進行單個html文件的跳轉(zhuǎn)酣倾,這個時候受網(wǎng)...
    視覺派Pie閱讀 11,810評論 1 55
  • 一舵揭、前端路由和后端路由 1.1 路由 路由就是通過互聯(lián)的網(wǎng)絡(luò)把信息從源地址傳輸?shù)侥康牡刂返幕顒印T赪eb的路由中躁锡,...
    怪獸難吃素閱讀 1,656評論 0 7
  • Vue 實例 屬性和方法 每個 Vue 實例都會代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,202評論 0 6
  • _________________________________________________________...
    fastwe閱讀 1,365評論 0 0