1. 程式人生 > >2018-10-22日 vue視訊筆記

2018-10-22日 vue視訊筆記

設定元件值

  1. 如果物件是個陣列,不能直接使用陣列下標的形式改變值,只能通過對應如push操作改變資料,或者直接改變引用
  2. 如果物件是Object,可以使用物件相關方法,不能直接使用.key的方式改變值。或者直接改變引用
  3. 可以直接使用 this.$set("物件","下標或者物件key",”值“);修改

元件使用細節

  1. 使用元件建立tr時,一定要使用<tr is="元件名">的形式,否則結構會有問題,這裡使用is就直接將tr替換成模板中的內容
  2. li標籤類似tr注意

獲取元件中dom節點

  1. 元件回去dom節點,在元件節點中新增ref=“名稱”
    標籤,使用 this.$hrfs.hef名稱 獲取dom節點,就可以使用原生js操作dom

觸發父元件監聽事件

  1. 使用this.$emit("事件名")可以出發訂閱事件,即子元件中標記的@事件名="父元件觸發事件"

父子元件值傳遞

  1. 子元件通過屬性接收父元件的值,如: conten="這裡是傳遞的字串" , :content="這裡傳遞vue的表示式的值",子元件通過pops["content","接收屬性"]接收值
  2. vue規定單向傳遞值,子元件只能接收值,不能改變值。如果傳遞的是物件,改變了值可能導致父元件其他地方的引用值改變,所以一般先用子元件定義值等於傳遞的值,然後使用子元件的值
  3. pops可以使用物件的形式進行傳遞資料型別校驗、設定預設值,釋出警告。實際感覺沒什麼用,可以直接百度學習
    4.如果pops存在屬性值,那麼元件上的屬性不會賦值到模板上,如果不接收屬性則直接賦值到模板最外層上

給元件繫結原生事件

  1. 元件上設定@click=“事件名”實際繫結的是自定義事件,並非真正的點選事件。可以在模板中使用@click="事件名"這裡才是原生點選事件。
  2. 元件上設定原生點選事件@click.native=“事件名”

非父子元件關係傳遞值:匯流排機制 觀察者模式

1.使用程式碼 Vue.prototype.bus = new Vue();

使用該程式碼後,每次建立元件時都會存在bus屬性,都指向一個引用。元件使用:this.bus.$emit('事件名',傳遞值)觸發事件。
2.接受元件中使用vue生命週期鉤子,mounted(mounted:在模板渲染成html後呼叫,通常是初始化頁面完成後,再對html的dom節點進行一些需要的操作),使用this.bus.$on('事件名(對應傳遞事件名)',方法(接收值){}) 進行處理

vue插槽

  1. 在元件標籤包含中的內容插入到子元件中,使用<slot></slot>插入到模板中,即為包含的內容
  2. 多個不同dom需要插入到模板不同位置時,在dom中新增slot=“名稱”,然後在模板中使用<slot name="dom中slot名稱0"></slot> 插入到對應位置

作用域插槽

1.在元件中新增<template slot-scope="資料">{{資料}}</template>固定寫法,然後在模板中使用<slot></slot>做對應操作,這樣就可以使用外部元素展示內部資料,外層可以使用vue表示式展示資料(有點繞,找官方文件理解下)

動態元件

1.使用<component :is="data資料"></component>元件,可以改變vue物件中data中的value展示對應的value名字的模板
2.使用v-if="控制值"時如果可以頻繁切換,建議在模板中的外層元素中新增v-once屬性,vue會做記憶體的快取,減少效能開銷

堅持就是勝利,初次接觸vue,希望後面能用熟練。學會這一門前端語言,有助於自己獨立開發。