vue組件的寫法匯總
數(shù)據(jù)驅(qū)動和組件化是vue.js兩個最重要的特點(diǎn)。組件化是為了方便代碼復(fù)用,提高開發(fā)效率。常見的vue組件寫法有四種,各有特色,適用于不同的場景。
1、全局組件
結(jié)構(gòu):
// 組件的注冊 Vue.component( 'componentName', { template: // 組件的html結(jié)構(gòu), data(){ return{ // 組件中的屬性 } }, method: { // 組件中的方法 } ...... // 組件其他的屬性和方法 }) // 組件的使用 new Vue({ el: '#app' })
在script標(biāo)簽內(nèi)通過Vue.component()定義一個全局組件,并通過new Vue()實(shí)例將組件應(yīng)用到html文件中id為app的標(biāo)簽內(nèi)。
特點(diǎn):
<1>可以直接在html文件中的script標(biāo)簽內(nèi)直接定義與使用;
<2>通過該方法定義的組件是全局組件,在任何Vue實(shí)例下都可以使用,適合項(xiàng)目比較簡單的場景;
<3>每次定義組件時都要重新使用Vue.component(),且組件名不能相同;
實(shí)例:
Welcome組件
2、局部組件
結(jié)構(gòu):
// 構(gòu)造組件對象 const componentName = { template: // 組件的html結(jié)構(gòu), data(){ return{ // 組件中的屬性 } }, method: { // 組件中的方法 } ...... // 組件其他的屬性和方法 } // 組件的使用 new Vue({ el: '#app', components: { // 組件注冊、調(diào)用 componentName } })
在script標(biāo)簽中通過定義一個組件對象,并通過Vue實(shí)例中components屬性將該組件注冊調(diào)用。
特點(diǎn):
<1>與全局方式定義的組件相似,都可以直接在html文件中的script標(biāo)簽中直接書寫組件與使用;
<2>只有在注冊過的Vue實(shí)例中才能使用該組件;
實(shí)例:
Welcome組件
3、使用template標(biāo)簽
結(jié)構(gòu):
<template id="componnet"> // 組件的html結(jié)構(gòu) </template> // 全局組件的注冊與使用 Vue.component( 'componentName', { template: '#component', data(){ return{ // 組件中的屬性 } }, method: { // 組件中的方法 } ...... // 組件其他的屬性和方法 }) new Vue({ el: '#app' }) // 局部組件的注冊與使用 const componentName = { template: '#component', data(){ return{ // 組件中的屬性 } }, method: { // 組件中的方法 } ...... // 組件其他的屬性和方法 } new Vue({ el: '#app', components: { // 組件注冊、調(diào)用 componentName } })
使用template標(biāo)簽將組件中的html結(jié)構(gòu)寫在body標(biāo)簽內(nèi)部,在script標(biāo)簽內(nèi)按照全局組件和局部組件的方式注冊與使用。不同之處在于組件中template屬性是通過id引用。
特點(diǎn):
<1>js文件中不包含html結(jié)構(gòu)內(nèi)容,實(shí)現(xiàn)結(jié)構(gòu)與邏輯分離;
實(shí)例:
Welcome組件
4、單文件組件
結(jié)構(gòu):
<template lang="html"> // 組件中的html結(jié)構(gòu) </template> <script> //組件的邏輯 export default { // 組件的屬性和方法 } </script> <style lang="css" scoped> // 組件的樣式 </style>
創(chuàng)建一個尾綴為vue的文件,文件名即為組件名。組件內(nèi)包含三部分內(nèi)容:html結(jié)構(gòu)、js邏輯、css樣式,分別對應(yīng)于不同的標(biāo)簽。使用時組件時,通過import引入即可使用。
特點(diǎn):
<1>組件與組件之間互不影響,復(fù)用性高,其html、css、js均可復(fù)用;
<2>組件的結(jié)構(gòu)、邏輯清晰;
<3>適用于大型復(fù)雜項(xiàng)目,適合多人開發(fā);
實(shí)例:
Welcome組件
?。?!需要注意的是:template標(biāo)簽內(nèi)必須用一個標(biāo)簽將所有的標(biāo)簽包裹,否則會報(bào)錯
正確的寫法:
<template> <div> <div></div> ...... <div></div> </div> </template>
錯誤的寫法:
<template> <div></div> <div></div> ...... <div></div> </template>
總結(jié)
以上所述是小編給大家介紹的vue組件的寫法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot+Vue3實(shí)現(xiàn)上傳文件功能
這篇文章主要介紹了SpringBoot+Vue3實(shí)現(xiàn)上傳文件功能,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01vue中g(shù)et方法\post方法如何傳遞數(shù)組參數(shù)詳解
在前后端交互的時候,有時候需要通過get或者delete傳遞一個數(shù)組給后臺,下面下面這篇文章主要給大家介紹了關(guān)于vue中g(shù)et方法\post方法如何傳遞數(shù)組參數(shù),文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03Vue微信項(xiàng)目按需授權(quán)登錄策略實(shí)踐思路詳解
這篇文章主要介紹了Vue微信項(xiàng)目按需授權(quán)登錄策略實(shí)踐思路詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2018-05-05socket io與vue-cli的結(jié)合使用的示例代碼
這篇文章主要介紹了socket io與vue-cli的結(jié)合使用的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11vue在App.vue文件中監(jiān)聽路由變化刷新頁面操作
這篇文章主要介紹了vue在App.vue文件中監(jiān)聽路由變化刷新頁面操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08關(guān)于新建的vue3項(xiàng)目一直提示代碼格式警告的問題
這篇文章主要介紹了關(guān)于新建的vue3項(xiàng)目一直提示代碼格式警告的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10Vue中iframe?結(jié)合?window.postMessage?實(shí)現(xiàn)跨域通信
window.postMessage()?方法可以安全地實(shí)現(xiàn)跨源通信,在一個項(xiàng)目的頁面中嵌入另一個項(xiàng)目的頁面,需要實(shí)現(xiàn)父子,子父頁面的通信,對Vue中iframe?結(jié)合?window.postMessage?實(shí)現(xiàn)跨域通信相關(guān)知識感興趣的朋友跟隨小編一起看看吧2022-12-12