Vue - day3

day3

Vue 組件

定義Vue組件

什么是組件:

組件的出現(xiàn), 就是為了拆分Vue實(shí)例的代碼量的,能夠讓我們以不同的組件,來(lái)劃分不同的功能, 將來(lái)需要什么功能, 直接調(diào)用對(duì)應(yīng)的組件即可.

模塊化組件化概念的解讀

  • 什么是模塊化:是從代碼的角度分析問(wèn)題;把可復(fù)用的代碼,抽離為單獨(dú)的模塊;
    • CommonJS 模塊化規(guī)范;
  • 模塊化的好處:提高了代碼的復(fù)用率,提供模塊作用域的概念,防止全局變量污染;方便了程序員之間 代碼互相調(diào)用;
  • 什么是組件化:組件化是從頁(yè)面UI的角度進(jìn)行分析問(wèn)題的;把頁(yè)面中可復(fù)用的UI結(jié)構(gòu),抽離為單獨(dú)的組件;
    • 組件化的好處:方便了 UI 結(jié)構(gòu)的重用;隨著項(xiàng)目開(kāi)發(fā)的深入,手中可用的組件會(huì)越來(lái)越多;elementUI

定義全局組件

  1. 定義組件的語(yǔ)法
    • Vue.component('組件的名稱(chēng)', { 組件的配置對(duì)象 })
  2. 使用組件的語(yǔ)法
    • 組件的名稱(chēng), 以標(biāo)簽的形式,引入到頁(yè)面上就行;

注意: 從更抽象的角度來(lái)說(shuō),每個(gè)組件,就相當(dāng)于是一個(gè)自定義的元素;

注意: 組件中的DOM結(jié)構(gòu),有且只能有唯一的根元素(Root Element)來(lái)進(jìn)行包裹!

定義私有組件(父子組件)

components

組件中定義data數(shù)據(jù)、methods方法以及生命周期函數(shù)

組件和實(shí)例的相同和區(qū)別:

  1. 組件中的 data 必須是一個(gè) function 并 return 一個(gè) 對(duì)象;在 Vue 實(shí)例中,實(shí)例的 data 既可以是 對(duì)象,也可以是 方法;
  2. 組件中,通過(guò) template 屬性來(lái)指定組件的UI結(jié)構(gòu);在 Vue 實(shí)例中,通過(guò) el 屬性來(lái)指定實(shí)例控制的區(qū)域;但是實(shí)例也可以使用 template;
  3. 組件和實(shí)例,都有自己的生命周期函數(shù)私有的過(guò)濾器,methods 處理函數(shù);

為什么組件中的data屬性必須定義為一個(gè)方法并返回一個(gè)對(duì)象

  1. 通過(guò)計(jì)數(shù)器案例演示

總結(jié): 因?yàn)檫@樣,能夠保證每次創(chuàng)建的組件實(shí)例,都有自己的一塊唯一的數(shù)據(jù)內(nèi)存(對(duì)象),防止組件之間數(shù)據(jù)的干擾;

使用 <component>標(biāo)簽實(shí)現(xiàn)組件切換

  1. <component> 是Vue提供的;作用是 把 is 指定的 組件名稱(chēng),渲染到 <component> 內(nèi)部
  2. 身上有一個(gè) :is屬性

多個(gè)組件切換 -- 應(yīng)用動(dòng)畫(huà) 和 mode 方式

<transition mode= 'out-in'>
    <component :is='conName'></component>
</transition>

組件傳值

父?jìng)髯? props-down

  • 組件中的props 中的數(shù)據(jù), 都是通過(guò)父組件傳遞給子組件中的

  • props 中的數(shù)據(jù), 都是只讀的 data 是可讀可寫(xiě)的

傳遞方法: 使用的是 事件綁定機(jī)制 v-on 通過(guò) this.$emit('fun',參數(shù),...) 這個(gè)參數(shù)可以傳遞給父組件 相當(dāng)于傳值給父組件

子傳父

  • 通過(guò) this.$emit()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 組件(Component)是Vue.js最核心的功能,也是整個(gè)架構(gòu)設(shè)計(jì)最精彩的地方,當(dāng)然也是最難掌握的。...
    六個(gè)周閱讀 5,769評(píng)論 0 32
  • 前言 您將在本文當(dāng)中了解到,往網(wǎng)頁(yè)中添加數(shù)據(jù),從傳統(tǒng)的dom操作過(guò)渡到數(shù)據(jù)層操作,實(shí)現(xiàn)同一個(gè)目標(biāo),兩種不同的方式....
    itclanCoder閱讀 26,244評(píng)論 1 12
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,372評(píng)論 0 6
  • 本文章是我最近在公司的一場(chǎng)內(nèi)部分享的內(nèi)容。我有個(gè)習(xí)慣就是每次分享都會(huì)先將要分享的內(nèi)容寫(xiě)成文章。所以這個(gè)文集也是用來(lái)...
    Awey閱讀 9,575評(píng)論 4 67
  • 從昨天早上、上午、下午的旅途辛勞,到昨天晚上不一樣的交流溝通;從羅校長(zhǎng)教育扶貧結(jié)對(duì)的決策,到于校長(zhǎng)、王主任...
    大漢天子廖振中閱讀 610評(píng)論 1 4

友情鏈接更多精彩內(nèi)容