vue項(xiàng)目筆記

打包后css泳秀、js和img路徑錯(cuò)誤

css和js文件路徑錯(cuò)誤
背景圖路徑錯(cuò)誤

利用vuex-persistedstate插件實(shí)現(xiàn)vuex的數(shù)據(jù)持久化

Vuex持久化插件-解決刷新數(shù)據(jù)消失的問(wèn)題

將后臺(tái)傳過(guò)來(lái)的 json 數(shù)組里面的 name 換成 text

this.columns = JSON.parse(JSON.stringify(res.data.data.data).replace(/r_name/g,'text'))
// res.data.data.data 是需要替換的對(duì)象數(shù)組
// r_name 是替換前的
// text 是替換后的

點(diǎn)擊選擇器禁止鍵盤(pán)彈出

forbidKeyboard(){
    document.activeElement.blur();
},

position:fixed;在android下無(wú)效怎么處理栋猖?

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"/>

怎么讓Chrome支持小于12px 的文字?

p{font-size:10px;-webkit-transform:scale(0.8);}

什么是響應(yīng)式設(shè)計(jì)严肪?響應(yīng)式設(shè)計(jì)的基本原理是什么?如何兼容低版本的IE缆瓣?

響應(yīng)式網(wǎng)站設(shè)計(jì)(Responsive Web design)是一個(gè)網(wǎng)站能夠兼容多個(gè)終端烟瞧,而不是為每一個(gè)終端做一個(gè)特定的版本。
基本原理是通過(guò)媒體查詢(xún)檢測(cè)不同的設(shè)備屏幕尺寸做處理悠鞍。
頁(yè)面頭部必須有meta聲明的viewport对室。

<meta name=’viewport’ content=”width=device-width, initial-scale=1. maximum-scale=1,user-scalable=no”>

1px border 問(wèn)題

對(duì)于老項(xiàng)目,有沒(méi)有什么辦法能兼容1px的尷尬問(wèn)題了咖祭,個(gè)人認(rèn)為偽類(lèi)+transform是比較完美的方法了掩宜。原理是把原先元素的 border 去掉,然后利用 :before 或者 :after 重做 border 么翰,并 transform 的 scale 縮小一半牺汤,原先的元素相對(duì)定位,新做的 border 絕對(duì)定位浩嫌。

單條border樣式設(shè)置:

.scale-1px{
position: relative;
border:none;
}
.scale-1px:after{
content: '';
position: absolute;
bottom: 0;
background: #000;
width: 100%;
height: 1px;
-webkit-transform: scaleY(0.5);
transform: scaleY(0.5);
-webkit-transform-origin: 0 0;
transform-origin: 0 0;
}

按需引入

圖片懶加載

如何給spa中一個(gè)單獨(dú)的組件設(shè)置背景色


給SPA的每個(gè)頁(yè)面加title

main.js

router.beforeEach((to,from,next)=>{
  // 為頁(yè)面添加標(biāo)題
  if (to.meta.title) {
    document.title = to.meta.title
  }
  next()
})

router.js 中給每個(gè)路由下添加一個(gè)meta 對(duì)象檐迟,內(nèi)部加入 title补胚。

import Vue from 'vue'
import Router from 'vue-router'


Vue.use(Router)

function loadView(view) {
  return () => import(/* webpackChunkName: "view-[request]" */ `@/components/${view}.vue`)
}

export default new Router({
  mode: 'history',
  base: 'view',
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: loadView('HelloWorld'),
      meta:{
        index:2,
        auth:true,
        title:'用戶(hù)中心'
      }
    },
    {
      path: '/addCarInfo',
      name: 'AddCarInfo',
      component: loadView('AddCarInfo'),
      meta:{
        index:3,
        auth:true,
        title:'綁定車(chē)輛信息'
      }
    },
  ]
})

class 內(nèi)寫(xiě)三元運(yùn)算符

<li :class="['carnum', item.plate_number.length == 8 ? 'carNumBgBlueGreen' : 'carNumBgBlue']">
  <div>{{item.plate_number}}</div>
</li>
// carnum是無(wú)需判斷,直接作用在 li 上面
// carNumBgBlueGreen 和 carNumBgBlue 直接使用 style 中的類(lèi)名

替換對(duì)象數(shù)組內(nèi)的鍵值key

columns = JSON.parse(JSON.stringify(res.data.data.data).replace(/r_name/g,'text'))
// res.data.data.data是被替換的對(duì)象追迟,把  name 換成 text

對(duì)象數(shù)組查重方法

          unique(arr){
                let unique = {};
                arr.forEach(function(item){
                    unique[JSON.stringify(item)]=item;//鍵名不會(huì)重復(fù)
                })
                arr = Object.keys(unique).map(function(u){ 
                //Object.keys()返回對(duì)象的所有鍵值組成的數(shù)組溶其,map方法是一個(gè)遍歷方法,
                //返回遍歷結(jié)果組成的數(shù)組.將unique對(duì)象的鍵名還原成對(duì)象數(shù)組
                    return JSON.parse(u);
                })
                return arr;
            }
sprite.png

Vue 路由的兩種傳參方式

路由嵌套怔匣,子路由傳參

watch 的初始立即執(zhí)行

觀(guān)察和響應(yīng) Vue 實(shí)例上的數(shù)據(jù)變動(dòng)握联。類(lèi)似于某些數(shù)據(jù)的監(jiān)聽(tīng)回調(diào) ,每當(dāng)監(jiān)聽(tīng)的數(shù)據(jù)變化時(shí)都會(huì)執(zhí)行回調(diào)進(jìn)行后續(xù)操作每瞒。

但是當(dāng) watch 一個(gè)變量的時(shí)候金闽,初始化時(shí)并不會(huì)執(zhí)行,如下面的例子剿骨,你需要在 created 的時(shí)候手動(dòng)調(diào)用一次代芜。

created() {
  this.getList();
},
watch: {
  keyWord: 'getList',
}

上面這樣的做法可以使用,但很麻煩浓利,我們可以添加 immediate 屬性挤庇,這樣初始化的時(shí)候就會(huì)自動(dòng)觸發(fā)(不用再寫(xiě) created 去調(diào)用了),然后上面的代碼就能簡(jiǎn)化為:

watch: {
  keyWord: {
    handler: 'getList',
    immediate: true
  }
}

watch 有三個(gè)參數(shù)

  • handler:其值是一個(gè)回調(diào)函數(shù)贷掖。即監(jiān)聽(tīng)到變化時(shí)應(yīng)該執(zhí)行的函數(shù)
  • deep:其值是 true 或 false嫡秕;確認(rèn)是否深入監(jiān)聽(tīng)。
  • immediate:其值是 true 或 false苹威,確認(rèn)是否以當(dāng)前的初始值執(zhí)行 handler 的函數(shù)

監(jiān)聽(tīng)組件的生命周期

比如有父組件 Parent 和子組件 Child昆咽,如果父組件監(jiān)聽(tīng)到子組件掛載 mounted 就做一些邏輯處理,常規(guī)的寫(xiě)法可能如下:

 // Parent.vue
<Child @mounted="doSomething"/>

// Child.vue
mounted() {
  this.$emit("mounted");
}

此外牙甫,還有一種特別簡(jiǎn)單的方式掷酗,子組件不需要任何處理,只需要在父組件引用的時(shí)候通過(guò)@hook 來(lái)監(jiān)聽(tīng)即可窟哺,代碼如下:

<Child @hook:mounted="doSomething" />
<Child @hook:updated="doSomething" />

當(dāng)然這里不僅僅是可以監(jiān)聽(tīng) mounted泻轰,其它的生命周期事件,例如:created且轨,updated 等都可以浮声。

路由參數(shù)變化組件不更新

同一path的頁(yè)面跳轉(zhuǎn)時(shí)路由參數(shù)變化,但是組件沒(méi)有對(duì)應(yīng)的更新旋奢。

原因:主要是因?yàn)楂@取參數(shù)寫(xiě)在了created或者mounted路由鉤子函數(shù)中泳挥,路由參數(shù)變化的時(shí)候,這個(gè)生命周期不會(huì)重新執(zhí)行黄绩。

解決方案1:watch監(jiān)聽(tīng)路由

watch: {
 // 方法1 //監(jiān)聽(tīng)路由是否變化
  '$route' (to, from) {
   if(to.query.id !== from.query.id){
            this.id = to.query.id;
            this.init();//重新加載數(shù)據(jù)
        }
  }
}
//方法 2  設(shè)置路徑變化時(shí)的處理函數(shù)
watch: {
'$route': {
    handler: 'init',
    immediate: true
  }
}

解決方案2 :為了實(shí)現(xiàn)這樣的效果可以給router-view添加一個(gè)不同的key羡洁,這樣即使是公用組件,只要url變化了爽丹,就一定會(huì)重新創(chuàng)建這個(gè)組件筑煮。

<router-view :key="$route.fullpath"></router-view>

不刷新頁(yè)面添加路由參數(shù)

this.$router.push({ query: {...this.$route.query, name: val.name} })
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辛蚊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子真仲,更是在濱河造成了極大的恐慌袋马,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秸应,死亡現(xiàn)場(chǎng)離奇詭異虑凛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)软啼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)桑谍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人祸挪,你說(shuō)我怎么就攤上這事锣披。” “怎么了贿条?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,116評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵雹仿,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我整以,道長(zhǎng)胧辽,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,371評(píng)論 1 279
  • 正文 為了忘掉前任公黑,我火速辦了婚禮邑商,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘帆调。我一直安慰自己奠骄,他們只是感情好豆同,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布番刊。 她就那樣靜靜地躺著,像睡著了一般影锈。 火紅的嫁衣襯著肌膚如雪芹务。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,111評(píng)論 1 285
  • 那天鸭廷,我揣著相機(jī)與錄音枣抱,去河邊找鬼。 笑死辆床,一個(gè)胖子當(dāng)著我的面吹牛佳晶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讼载,決...
    沈念sama閱讀 38,416評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼轿秧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼中跌!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起菇篡,我...
    開(kāi)封第一講書(shū)人閱讀 37,053評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤漩符,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后驱还,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嗜暴,經(jīng)...
    沈念sama閱讀 43,558評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評(píng)論 2 325
  • 正文 我和宋清朗相戀三年议蟆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了闷沥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,117評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咐容,死狀恐怖狐赡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疟丙,我是刑警寧澤颖侄,帶...
    沈念sama閱讀 33,756評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站享郊,受9級(jí)特大地震影響览祖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炊琉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評(píng)論 3 307
  • 文/蒙蒙 一展蒂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苔咪,春花似錦锰悼、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,315評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至舔清,卻和暖如春丝里,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背体谒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,539評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工杯聚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抒痒。 一個(gè)月前我還...
    沈念sama閱讀 45,578評(píng)論 2 355
  • 正文 我出身青樓幌绍,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子傀广,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評(píng)論 2 345

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

  • vue-axios跨域使用在config.index.js設(shè)置本地代理 在config.dev.env.js設(shè)置開(kāi)...
    呼蘭呦閱讀 713評(píng)論 0 0
  • 新建vue項(xiàng)目 npm install -g cnpm --registry=https://registry.n...
    東東學(xué)習(xí)室閱讀 134評(píng)論 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5痢虹? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 27,422評(píng)論 1 45
  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案主儡? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評(píng)論 1 92
  • 前端開(kāi)發(fā)面試題 面試題目: 根據(jù)你的等級(jí)和職位的變化奖唯,入門(mén)級(jí)到專(zhuān)家級(jí),廣度和深度都會(huì)有所增加糜值。 題目類(lèi)型: 理論知...
    怡寶丶閱讀 2,570評(píng)論 0 7