場景分析
在前端開發中,我們常常會運用到“組件庫”。在main入口中引入組件庫,就可以很輕松的在頁面中引入,并做一些基本的配置,如樣式,顏色等。只需要在引入的組件中寫入特定的屬性,就能夠定義。
舉例說明
例如:element-ui組件庫中使用switch開關,有個屬性active-color是設置“打開時”的背景色。change事件是觸發狀態的事件。
<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是將特定的數據傳給組件,也就是父傳子組件。
其次是@change雖然監聽的是改變事件,但是語法糖依然是$emit,什么emit我們在以后的文章中會講到,就是“拋出事件”。
這就分為組件的最基本功能:
•數據進
•事件出
那組件的使用我們知道了,通過active-color傳入參數,通過@來接收事件。
 所以,我們來探究一下組件的內部結構是什么樣的?
我寫了一個小模型,是一個顯示標題的小按鈕,通過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接收父組件傳遞過來的數據,通過工廠函數獲取一個默認值。
傳遞
通過this.$emit('ai_click', title)告訴父組件,我要傳遞一個事件,名字叫“ai_click”,請通過@ai_click接收一下,并且我將title的值返回父組件。
總結
所以今天分析vue組件的3大核心概念的其中兩個――屬性和事件。
 這篇文章只分析到應用場景,也是最簡單的組件。希望后續能夠深入了解vue的組件概念:屬性、事件和插槽。
以上所述是小編給大家介紹的vue組件間的參數傳遞實例詳解,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
新聞熱點
疑難解答