vue記錄

簡介

是一套用於構建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設計爲可以自底向上逐層應用。Vue> 的核心庫只關注視圖層,不僅易於上手,還便於與第三方庫或既有項目整合。另一方面,當與現代化的工具鏈以及各種支持類庫結合使用時,Vue 也完全能夠爲複雜的單頁應用提供驅動。

基礎特性

  • 雙大括號語法用於文本插值
  • 模板內部不要訪問全局變量
  • vm.$watch 是一個實例方法有兩個參數,能監聽數據的變化返回改變後的值和改變前的值
  • computed 處理模板內的複雜邏輯形成方法
  • 方法寫入模塊內能緩存,不依賴響應數據

wach偵聽和computed計算

  • 因頻繁的數據變動使用wach得不償失,應使用計算

  • wach在執行異步操作時才得以使用
    計算的setter

  • 在觸發數據變化時setter會被使用

組件

  • 組件是可複用的 Vue 實例,且帶有一個名字
  • 它們與 new Vue 接收相同的選項,例外是像 el 這樣根實例特有的選項。
  • 可以將組件進行任意次數的複用,因爲你每用一次組件,就會有一個它的新實例被創建。
  • 自定義組件使用class不會覆蓋原有的class
  • 可以像在任何普通元素上一樣使用 v-for ,但是key是必須的
  • 組件有自己獨立的作用域,爲了把數據傳遞到組件裏,我們要使用 prop:
  • 組件默認可擁有任意數量的prop也能是數組猶如data一樣的效果
  • 事件的同樣可以綁定,傳入一個事件源對象需要方法 $emit 傳遞
  • 父級監聽自定義組件需要用$event來訪問
  • 組件使用v-model需要使用到 $emit 接收和 $event 來取值
  • 給組件傳遞內容使用元素在需要的地方加入插槽
  • 動態切換要特殊的 is attribute 來實現正常工作需 .prop修飾器
  • dom模板操作時被忽略需要特殊的 is 來變通

指令

指令後方可以添加參數和修飾符
方括號包裹表示動態參數屬性,需要遵守書寫規範
修飾符是指令以特殊方式綁定
v-bind 和 v-on 這兩個最常用的指令,提供了簡寫

  • v-once 指令,執行一次插值

  • v-html 指令,輸出html(避免使用輸出)

  • v-bind 指令:解析表達式爲true生效

  • v-if 指令,根據表達的真假值決定行爲

  • v-if指令,達式返回 truthy 值的時候被渲染,需顯示多個元素需要在不可見的包裹

  • v-else 元素必須緊跟在帶 v-if 或者 v-else-if塊 的元素的後面,否則它將不會被識別。

  • vue通常會複用已有元素,添加一個具有唯一屬性的值給 key 就會動態生成

  • v-show 指令,根據條件展示元素,帶有 v-show 的元素始終會被渲染並保留在 DOM 中

  • v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷,非常頻繁地切換用show,很少改變用if

  • v-if 與 v-for 不建議一起使用,v-for 具有更高的優先級,if會不斷循環,for需添加限制時非常有效

  • v-for 指令,基於一個數組,可獲取值和下標,還有父級屬性

  • 爲對象可獲取值和鍵名,還有下標,取得的值爲動態渲染時,需要添加id,:key

  • 數組內部的值正常無法動態監聽,需使用變異方法包裹觸發視圖更新

  • 變異方法push(),pop(),shift(),unshift(),splice(),sort(),reverse()

  • 替換數組,使用非變異方法改變數組是相當高效的行爲

  • filter()、concat() 和 slice() 等

  • 下標設置值和修改數組長度不是響應式的

  • 可以用Vue.set或實例vm.$set實現響應式或splice截取添加

  • 修改長度使用splice截取掉獲得

  • 動態添加刪除對象內容也不是動態的,可以使用vue.set或其實例,多個對象使用時assign先手動添加新的空對象

class和style

  • v-bind 指令:解析表達式或對象屬性爲true生效
  • v-bind用於動態切換class能是對象和數組
  • 對象爲一個返回函數返回判斷處理的結果
  • 數組則可以使用三目判斷操作,或和對象混和使用
  • v-bind:style也能是對象和數組
  • 對象內可以是多個屬性,在模板內更清晰,值能包含多個前綴爲值
  • 數組就是多個樣式應用,

過濾器

  • 排序則使用computed計算屬性,返回使用filter形成的新數組
  • for循環時可設置爲處理函數動態執行返回新數組
  • for接受源對象爲整數時會重複對應次數
  • 在 上使用 v-for循環渲染

事件處理

  • 監聽事件:v-on 指令監聽 DOM 事件,並在觸發時運行一些 JavaScript 代碼。

  • 一般接受的參數是事件處理的函數名稱,或函數體

  • 函數體參數內除了數據還有$event取事件

  • 事件修飾符,點開頭的指令後綴

  • .stop:阻止單擊事件繼續傳播

  • .prevent:提交事件不再重載頁面,可以串聯,只有修飾符

  • .capture:事件捕獲在內部處理

  • .self:自身event爲觸發時執行函數

  • .once:只會觸發一次,能被用到自定義的組件事件上

  • .passive:得到事件觸發會立即觸發行動,提升移動端性能

  • 按鍵修飾符

  • Vue 允許爲 v-on 在監聽鍵盤事件時添加按鍵修飾符

  • 可以通過全局 config.keyCodes 對象自定義按鍵修飾符別名

  • .exact 修飾符允許控制由精確的系統修飾符組合觸發的事件

  • 鼠標按鈕修飾符會限制處理函數僅響應特定的鼠標按鈕。

  • 表單輸入綁定

  • v-model 在內部爲不同的輸入元素使用不同的屬性並拋出不同的事件:

  • text 和 textarea 元素使用 value 屬性和 input 事件;

  • checkbox 和 radio 使用 checked 屬性和 change 事件;

  • select 字段將 value 作爲 prop 並將 change 作爲事件。

  • 用 v-for 渲染的動態選項:使用v-bind實現動態綁定

  • 內部的rure-vale和false-value不會影響表單控件的提交

  • 修飾符.lazy 轉變爲使用 change 事件進行同步

  • .number 自動將用戶的輸入值轉爲數值類型

  • .trim 自動過濾用戶輸入的首尾空白字符

過度和動畫

  • Vue 提供了 transition 的封裝組件,自動嗅探目標,在恰當的時機添加/刪除 CSS 類名
  • v-enter:定義進入過渡的開始狀態
  • v-enter-to: 2.1.8版及以上 定義進入過渡的結束狀態
  • v-enter-active:定義進入過渡生效時的狀態
  • v-leave-active:定義離開過渡生效時的狀態
  • v-leave: 定義離開過渡的開始狀態
  • v-leave-to: 2.1.8版及以上 定義離開過渡的結束狀態

深入組件

  • 組件名大駝峯或槓鏈接
  • 全局和局部組件,全局是在new vue前註冊的,在打包時增加無謂的增加
  • 子組件之間不通信,添加到 Components 目錄進行模塊加載即可
  • 組件的自動化註冊也是依靠es6模塊引入
  • prop的屬性命名駝峯式,使用就是槓連接
  • prop類型可以是數組或對象,可以接受靜態值和動態值
  • 給prop傳全部的對象屬性,使用不帶參數的 v-bind 解析
  • 單向數據流,prop父子之間是向下單向綁定的,動態更新的子prop內容
  • 作爲本地prop數據使用或轉換可以用data和computed處理返回
  • prop驗證數據類型,根據定義的驗證方法返回警告
  • 類型檢查,type可以是所有類型原生構造函數的一個
  • 非prop的傳入沒有定義的屬性會添加到對應根元素上
  • 本身和父級的屬性值在衝突時會合並得到最終的值
  • 可以選擇禁用Attribute(屬性)不繼承根的屬性
  • 實例的 $attrs 屬性使用,包含給組件的attrbute和值
  • 自定義事件,監聽時間需要完全匹配,則使用槓連接
  • v-model默認會利用value和prop名爲input事件,model可以自己設置prop和enent值,以及輸入類型的控件設置
  • 組件上監聽原生事件使用 v-on 的 .native 修飾符
  • 監聽被重構的input會靜默失敗,需要 $listentrs 對象返回監聽器
  • .sync 修飾符,update:myPropName可以對prop值進行監聽更新
  • 插槽,在模板內進行設置
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章