1. 程式人生 > >vue組件相關內容

vue組件相關內容

核心 red tro one 總結 axios 裏的 strong 獲得

說明

組件(Component)是 Vue.js 最強大的功能之一,組件可以擴展 HTML 元素,封裝可重用的代碼,組件系統讓我們可以用獨立可復用的小組件來構建大型應用。

定義方法

這是官網給出的一種定義組件的方法

技術分享圖片

一下是我目前使用的方法,以下內容都是按照此方法定義組件的。(因為這樣可以使模板和組件分開)

定義組件前首先要定義一個模板,這是定義模板的一種方式

技術分享圖片

這是定義模板的另一種方式

技術分享圖片

接下來定義組件

技術分享圖片

這裏有幾個註意事項:

1.定義模板時,模板裏只能有一個頂層標簽。

2.定義組件時,不能使用H5標簽。

3.模板和組件之間用id相關聯。

4.組件的數據data是個函數。

5.組件的數據在自己的模板裏使用。

定義好模板和組件時,我們要使用組件,首先要在父組件中註冊這個組件,firsttemp就是我註冊的組件,然後在父組件的模板中以標簽的形式調用。

技術分享圖片

技術分享圖片

對以上內容做個小總結:

每個組件都有自己的模板,組件和模板之間用id相關聯,每個組件下面的數據只能在自己的模板中使用,如果使用這個組件,需要把它註冊在一個父組件下,在父組件的模板中以標簽的形式調用。

組件的生命周期(鉤子函數)

生命周期:組件本省是不存在,是人為創建的,這種從無到有到銷毀的過程叫生命周期。

三個步驟六個過程

Created 創造 beforeCreated created

Mounted 加載

beforeMounted mounted

Destroy 銷毀 beforeDestroy destroyed

數據交互

GET

這裏有一個this指向的問題,這是一種解決方式,用變量儲存this

技術分享圖片

這是第二種解決方式

技術分享圖片

get傳參

技術分享圖片

POST

技術分享圖片

大家會發現,數據出不來,因為這個作者他忽略了所有後臺的傳參的本質是字符串,

get是通過url中的query對象來傳,而post是通過協議中的一個body屬性來傳,但是不管是什麽方式,本質都是字符串。

強制將參數變成字符串

技術分享圖片

以上就是axiosgetpost數據交互。

嵌套組件

技術分享圖片

只要在父組件中用標簽的形式調用子組件就可以了。

組件通信

第一種是父組件向子組件傳數據

技術分享圖片

每一個組件都有一個props屬性,這是該組件的組件標簽上的所有屬性構成的集合。

父組件和子組件之間靠子組件標簽取得聯系,在子組件標簽上的屬性可以在子組件的props屬性接受到。

第二種是子組件向父組件傳遞數據

這裏有一個refs屬性,是在組件模板下,所有子組件標簽構成的集合。

如果父組件想要獲得子組件的信息。

第一步:

給子組件添加ref屬性。

第二步:

在父組件下使用this.$refs 就可以看到子組件標簽的所有信息。

技術分享圖片

自定義事件

除了默認設置的核心指令( v-model 和 v-show ), Vue 也允許註冊自定義指令。

在子組件下定義一個事件,用於自定義事件,我們用到的是this.$emit

技術分享圖片

首先我們在子組件上綁定了一個click事件,這裏用到的this.$emit有兩個參數,第一個參數是自定義事件名,第二個參數是想要傳遞的數據。

然後我們在子組件標簽上用v-on 或者 @ 來接收自定義的文件

技術分享圖片

接下來我們在父組件上寫下事件的方法

技術分享圖片

這裏的參數res就是接收到的數據。

vue組件相關內容