vue組件間的參數(shù)傳遞實(shí)例詳解
場景分析
在前端開發(fā)中,我們常常會運(yùn)用到“組件庫”。在main入口中引入組件庫,就可以很輕松的在頁面中引入,并做一些基本的配置,如樣式,顏色等。只需要在引入的組件中寫入特定的屬性,就能夠定義。
舉例說明
例如:element-ui組件庫中使用switch開關(guān),有個(gè)屬性active-color是設(shè)置“打開時(shí)”的背景色。change事件是觸發(fā)狀態(tài)的事件。
<el-switch v-model="value" :active-color="activecolor" @change="touchSwitch"> </el-switch> <script> export default { data() { return { value: true, activecolor: '#13ce66' } }, methods: { touchSwitch () { // 這里入方法 } } }; </script>
分析代碼
我們分析上面的代碼
首先我們可以看到active-color是將特定的數(shù)據(jù)傳給組件,也就是父傳子組件。
其次是@change雖然監(jiān)聽的是改變事件,但是語法糖依然是$emit,什么emit我們在以后的文章中會講到,就是“拋出事件”。
這就分為組件的最基本功能:
•數(shù)據(jù)進(jìn)
•事件出
那組件的使用我們知道了,通過active-color傳入?yún)?shù),通過@來接收事件。
所以,我們來探究一下組件的內(nèi)部結(jié)構(gòu)是什么樣的?
我寫了一個(gè)小模型,是一個(gè)顯示標(biāo)題的小按鈕,通過div包裹。
<!-- type-box.vue --> <template> <div class="box" @click="ai_click(title)">{{title}}</div> </template> <script> export default { name: 'type-box', props: { title: { type: String, default: () => '' } }, methods: { ai_click (title) { this.$emit('ai_click', title) } } } </script> <style scoped> .box{ width: 250px; height: 100px; margin: 10px; border-radius: 10px; background-color: #3a8ee6; color: white; font-size: 25px; line-height: 100px; text-align: center; cursor: pointer; } </style>
使用方法:
<!-- 父組件使用 --> <template> <div> <type-box title="演示盒子" @ai_click=“touch”></type-box> </div> </template> <script> import typeBox from './type-box' export default { components: { typeBox }, methods: { touch (data) { console.log(data) } } } </script>
分析組件
接收
通過props接收父組件傳遞過來的數(shù)據(jù),通過工廠函數(shù)獲取一個(gè)默認(rèn)值。
傳遞
通過this.$emit('ai_click', title)
告訴父組件,我要傳遞一個(gè)事件,名字叫“ai_click”,請通過@ai_click接收一下,并且我將title的值返回父組件。
總結(jié)
所以今天分析vue組件的3大核心概念的其中兩個(gè)——屬性和事件。
這篇文章只分析到應(yīng)用場景,也是最簡單的組件。希望后續(xù)能夠深入了解vue的組件概念:屬性、事件和插槽。
以上所述是小編給大家介紹的vue組件間的參數(shù)傳遞實(shí)例詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時(shí)回復(fù)大家的!
相關(guān)文章
vue3不同環(huán)境下實(shí)現(xiàn)配置代理
這篇文章主要介紹了vue3不同環(huán)境下實(shí)現(xiàn)配置代理,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05解決elementui上傳組件el-upload無法第二次上傳問題
這篇文章主要介紹了解決elementui上傳組件el-upload無法第二次上傳問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03webpack+vuex+axios 跨域請求數(shù)據(jù)的示例代碼
本篇文章主要介紹了webpack+vuex+axios 跨域請求數(shù)據(jù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03安裝@vue/cli報(bào)錯(cuò)npmERR gyp ERR問題及解決
這篇文章主要介紹了安裝@vue/cli報(bào)錯(cuò)npmERR gyp ERR問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Vue中用watch一次監(jiān)聽多個(gè)值變化的示例詳解
在Vue中,watch 本身不能監(jiān)聽多個(gè)變量,但我們可以通過返回具有計(jì)算屬性的對象然后監(jiān)聽該對象,從而實(shí)現(xiàn)一次性“監(jiān)聽多個(gè)變量”,本文給大家介紹了Vue中用watch一次監(jiān)聽兩個(gè)值變化的示例,需要的朋友可以參考下2024-01-01vue-cli的build的文件夾下沒有dev-server.js文件配置mock數(shù)據(jù)的方法
這篇文章主要介紹了vue-cli的build的文件夾下沒有dev-server.js文件配置mock數(shù)據(jù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04Vue.js中自定義Markdown插件實(shí)現(xiàn)References解析(推薦)
本文主要寫的是,如何編寫一個(gè)插件來解析<references>標(biāo)簽,并將其轉(zhuǎn)換為HTML,這種方法可以應(yīng)用于其他自定義標(biāo)簽和功能,為Vue.js應(yīng)用程序中的Markdown渲染提供了極大的靈活性,感興趣的朋友跟隨小編一起看看吧2024-07-07Vue3使用Vuex之mapState與mapGetters詳解
這篇文章主要為大家介紹了Vue3使用Vuex之mapState與mapGetters詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03