前端知識學習06

1.web性能優化:

減少重繪

高頻事件防抖

代碼壓縮

代碼優化 css js

圖片優化

webpack按需引入

使用CDN服務

2.vue怎麼自定義指令:

組件緩存:keepAlive

3.vue修飾符

表單修飾符

  • lazy:光標離開輸入框的時候纔會將值賦給value
  • trim:去除輸入的首空格
  • number:自動將用戶輸入值轉化爲數值類型

事件修飾符:

  • stop:阻止事件冒泡
  • prevent:阻止事件默認行爲
  • self:當前元素自身時觸發處理函數
  • once:綁定的事件只觸發一次
  • capture:使事件觸發包含這個元素開始向下觸發
  • passive:元素滾動懶加載
  • native:監聽根元素的原生事件

鼠標按鈕修飾符:

  • left 左鍵點擊
  • right 右鍵點擊
  • middle 中鍵點擊

鍵盤修飾符:

  • 鍵盤事件:keyup keydown keycode
  • 普通鍵:(enter、tab、delete、sapce、esc、up...)
  • 系統修飾符:(ctrl、alt、meta、shift...)

v-bind:

  • sync:duiprops雙向綁定
  • prop:設置自定義標籤屬性,避免暴露數據,污染html結構
  • camel:將命名變爲駝峯命名法

4.vue自定義指令:

全局註冊自定義指令:Vue.directive第一個參數是指令的名字

// 註冊一個全局自定義指令 `v-focus`
Vue.directive('focus', {
  // 當被綁定的元素插入到 DOM 中時……
  inserted: function (el) {
    // 聚焦元素
    el.focus()  // 頁面加載完成之後自動讓輸入框獲取到焦點的小功能
  }
})

局部註冊自定義指令:在組件options的中設置directive屬性

directives: {
  focus: {
    // 指令的定義
    inserted: function (el) {
      el.focus() // 頁面加載完成之後自動讓輸入框獲取到焦點的小功能
    }
  }
}

5.vue中的key

  1. key是給每一個vnode的唯一id,也是diff的一種優化策略,可以根據key,更準確,更高效的找到對應的vnode。

  2. 在使用v-for的時候建議使用key,當 Vue.js 用 v-for 正在更新已渲染過的元素列表時,它默認用“就地複用”策略。如果數據項的順序被改變,Vue 將不會移動 DOM 元素來匹配數據項的順序, 而是簡單複用此處每個元素,並且確保它在特定索引下顯示已被渲染過的每個元素。

6.瀏覽器兼容:

css:

*{margin:0;padding:0;}:用來消除不同瀏覽器的默認的內外補丁

第一類:塊狀元素float後,有添加了橫向的margin,在IE6下比設置的值要大(屬於雙倍浮動的bug)

解決方案:給float標籤添加display:inline,將其轉換爲行內元素

第二類:表單元素行高不一致

解決方案:給表單元素添加float:left(左浮動);或者是vertical-align:middle;(垂直對齊方式:居中)

第三類:設置較小高度的容器(小於10px),在IE6下不識別小於10px的高度;

解決方案:給容器添加overflow:hidden;

第四類:當在a標籤中嵌套img標籤時,在某些瀏覽器中img會有藍色邊框;

解決方案:給img添加border:0;或者是border:none;

第五類:min-height在IE6下不兼容

解決方案:

1)min-height:value;

  _height:value;

2)min-height:value;

 height:auto!important;

 height:value;

第六類:圖片默認有間隙

解決方案:

1)給img標籤添加左浮動float:left;

2)給img標籤添加display:block;

第七類:按鈕默認大小不一

解決方案:

1)用a標籤來模擬按鈕,添加樣式;

2)如果按鈕是一張背景圖片,那麼直接給按鈕添加背景圖;

第八類:百分比的bug

解決方案:父元素寬度爲100%,子元素寬度各爲50%,在IE6下各個元素寬度之和超過100%

解決方案:給右邊浮動的子元素添加clear:right;

第九類:鼠標指針bug

描述:cursor:hand;只有ie瀏覽器識別,其他瀏覽器不識別

解決方案:cursor:pointer;IE6以上瀏覽器及其他內核瀏覽器都識別;

第十類:透明度屬性

解決方案:針對IE瀏覽器:filter:alpha(opacity=value);(取值範圍1--100)

兼容其他瀏覽器:opacity:value;(取值範圍0--1)

第十一類:上下margin的重疊問題

描述:給上邊元素設置了margin-bottom,給下邊元素設置了margin-top,瀏覽器只會識別較大值;

解決方案:margin-top和margin-bottom中選擇一個,只設置其中一個值;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章