元件

  • 引入元件的方式

    • 1.宣告 app 後再用 app.component 建立

    app.component('my-component', {
    //...
    })
    • 2.import component 後,直接在建立 app 時,放入 components 屬性中。(要用 import 要有執行環境,如 Vue Cli)

      import myComponent from './components/my-component.js';
      
      const app = Vue.createApp({
        components: {
          myComponent
        }
      });
      	
      app.mount('#app');

Drawing

下方是 Vue 2

  • 元件執行模式:一個元件可以分為資料(model)和視圖(view),資料更新時,視圖也會自動更新。在視圖中又可以綁定一些事件,它們觸發methods裡指定的方法,進一步可以改變資料、更新視圖。

  • 元件內的data元素必須是函數,並將資料return為物件格式。

  • 元件有分全域註冊和局部註冊兩種。

  • 元件傳遞資料的方式。

    • 父傳子:props

    • 子傳父:$emit

    • 通用:bus

      • 宣告空的元件

      • 用bus.$emit()傳入

      • 用bus.$on()取值

    • 直接取得父元件(元件間會產生依賴):$parent

    • 直接取得子元件(元件間會產生依賴):$refs

      用ref定位,再用$refs取值

  • slot(將靜態範本的內容分發給元件中的slot)

    • 單一slot:可無名稱。

    • 具名slot:命名後可分發多個slot。

    • 作用域slot:反向將slot內的資訊文字動態產生在靜態範本內,使靜態的範本內有可變動的資料。

    • 存取slot:mounted後用$slots

  • 其它

動態元件:使用is特性來選擇要掛載的元件

$nextTick:因為Vue在更新data後,不是即時更新DOM,而是使用佇列緩衝所有的資料改變。所以$nextTick就是用來知道什麼時候DOM更新完成,然後再執行其後的程式。

X-Templates:一種在HTML中,定義template的方式,不用考慮換行的問題。

Last updated

Was this helpful?