元件是可復用的 vue 例項。
本質上是乙個物件,該物件包含data
、computed
、watch
、methods
、filters
以及生命週期鉤子等成員屬性。
元件結構:
},
computed:
},methods:
}}
乙個元件的 data 選項必須是乙個函式。
data選項有兩種定義方式:
一、物件形式:
data:
二、函式形式:
data()
}
區別
method
computed
filter
型別函式
資料變數
函式用途
作事件處理函式
作資料作管道符
作用範圍
組建內組建內
組建內(區域性註冊)、全域性(全域性註冊)
引數可以帶參
不帶參(非函)
帶參返回值
不要求必須有
必須有觸發
互動時觸發
在它的相關依賴發生改變時才會重新求值
傳入的資料變化時執行
注意:
元件構建的主要區別在於模板的生成方式。
字串模板
}}
id選擇器指定的模板}}
,
props:
}}
單檔案元件將模板、邏輯、樣式在結構上分離,儲存在同乙個檔案中。
...
template
單檔案render
一行的簡單結構
常規的選擇
前邊兩種方案解決不了時候的選擇(靈活性高)
注意:
}
以上幾種方案定義的元件本質上都是乙個物件,獲取該物件(假設變數名為tabbar),要求專案內任何元件可使用:
一般在專案的入口檔案(如:腳手架搭建專案的main.js
)中:
vue.component('tab-bar',tabbar);
這樣就是全域性註冊,該元件tabbar
能在整個專案內使用
,所有元件對tabbar
可見。
以下用自己的語言將生命週期鉤子表述一下,如果有不對的地方,請校正:
在這個時候,生命週期函式已經準備好。
在這個時候,當前元件例項this
上的屬性($data
、props
、$methods
...)已經注入繫結,可以呼叫本例項上的成員屬性;
在進入本生命週期之前,會進行以下判斷:
是否有template
選項:
最終這些模板都會轉換為render
函式進行渲染!!!
在本生命週期之前,已經將模板渲染為真實dom,其中vm.$el
為元件例項的根dom元素;
vue定義元件
vue定義元件vue中定義元件有兩種 全域性元件和區域性元件。全域性元件可以在頁面的任何位置使用,區域性元件只能在定義的el的範圍內使用,在el的範圍外使用會不顯示 定義全域性元件的方法 vue.component component name 定義區域性元件的方法 new vue componen...
34 定義vue元件
什麼是模組化 模組化是從 的角度出發,分析專案,把專案中一些功能類似 的 單獨抽離為乙個個的模組,那麼為了保證大家以相同的方式去封裝模組,於是我們就創造了模組的規範 commonjs規範 模組化的好處 方便專案開發,和後期的維護與擴充套件,今後如果需要某些固定功能 的模組,則直接拿來引用就行,提高了...
vue 元件的定義
1 什麼是元件?元件的出現,就是為了拆分vue例項的 量的,能夠讓我們以不同的元件來劃分不同的功能模組,將來我們需要什麼樣的功能,就可以去呼叫對應的元件即可。2 元件化和模組化的不同?3 全域性元件定義的三種方式 注意 元件中的dom結構,有且只能有唯一的根元素 root element 來進行包裹...