Vue實戰讀書筆記(1)

基礎篇

  • 當掛載成功後,我們可以通過 vue實例名.$el來訪問dom元素

生命週期

  • created:實例創建完成後調用,但尚未掛載,$el還不可用
  • mounted: el掛載實例後調用,一般第一個業務邏輯在此開始
  • beforeDestroy:實例銷燬之前調用,主要解綁一些使用addEventListener監聽的事件

{{}}符號

  • 只想顯示{{}},不進行替換,可以使用v-pre跳過編譯過程
  • {{}}只支持單個表達式,不支持語句和流控制

指令與事件

  • 數據驅動DOM是 Vue.js的核心理念,所以萬不得已不主動操作Dom
  • methods屬性中的方法中,this屬性指向當前vue實例本身!

計算屬性

計算屬性也可以有getter /setter方法

computed:{
    fullName:{
        get:function(){
            
        },
        set:function(newValue){
            
        }
    }
}

當執行 vue實例.fullName=‘xxx’,setter方法就會被調用的

v-if

如果一次性判斷多個元素,可以使用標籤

<template v-if='status==1'>
  <p>1</p>
  <p>2</p>
</template>

由於底層vue.js可能採用複用,所以如果考慮禁用可以使用key元素指定不同的鍵值

method 參數

方法的參數,可以傳入$event,代表原生dom的 事件對象

<a href='xxx' @click='handle('xxx',$event)'>


js:
methods:{
    handle:function(message,event){
        xxxxx
    }
}

v-model的修飾符

  • .lazy v-model會變成change事件同步
  • .number 將輸入轉換爲number類型
  • .trim 自動過濾輸入的首尾空格

組件篇

  • 組件註冊
1.全局註冊
2.局部註冊
  • 非父子組件通信
簡單的方案就是使用bus總線
<script>
var bus = new Vue();
    
子組件:
    bus.$emit("事件名","需要傳遞的數據")

父組件處理函數:

var _this =this;//先保留this引用
bus.$on('事件名'function(msg){
    //處理邏輯
})

  • 父鏈 和 子鏈
儘量不使用,直接修改父子鏈狀態,理解困難
使用 
 this.$parent 可以直接訪問該組件的父實例或組件
使用
 this.$children 訪問它所有的子組件
  • 子組件索引

通過this.$children 遍歷組件實例,比較麻煩,可以使用ref便捷訪問
<component-a ref='comA'></component-a>

父組件可以通過 this.$refs.comA直接訪問子組件的vue 實例

需要注意的是ref 標記在普通元素上時, this.$refs.普通元素 得到的是 普通元素的Dom
  • slot 插槽
1.具名插槽
2.作用域插槽,使用一個複用的模板替換已經渲染的元素
3. 訪問slot 使用 this.$slots.slot名稱(或者default)

  • 其他一些高級知識點
1.$nextTick :等待到下一個時間循壞tick中,Vue 刷新隊列並執行實際(異步更新隊列已去重)的工作

this.$nextTick(function(){
    //業務邏輯
})

2.手動掛載實例

創建vue實例的時候沒有指定el屬性,處於未掛載的狀態,可以使用$mount手動掛載一個實例,這個方法返回實例本身
var a = Vue.extend({...一些屬性})
new a().$mount('#dom的Id')

3.動態組件
使用component用來掛載不同組件,is屬性來選擇要掛載的組件
<component :is='需要掛載的組件'>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章