欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue父子組建的簡(jiǎn)單通信之控制開(kāi)關(guān)Switch的實(shí)現(xiàn)

 更新時(shí)間:2018年06月04日 10:25:18   作者:731947523  
這篇文章主要介紹了Vue父子組建的簡(jiǎn)單通信之控制開(kāi)關(guān)Switch的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

Vue在目前是很好的框架,第一次使用Vue開(kāi)發(fā)項(xiàng)目,剛開(kāi)始的時(shí)候在一個(gè)控制開(kāi)關(guān)的組件都花費(fèi)了很久的時(shí)間,問(wèn)題解決了,把自己的一些小問(wèn)題給記錄下來(lái),方便以后看及幫助像我這樣的初級(jí)萌新解決遇到的相同問(wèn)題。

問(wèn)題: 父組件傳入值到子組件,子組件修改之后怎樣傳回到父組件 

父組件:內(nèi)部首先要有三步

1、父組件中引用子組件

2、父組件中注冊(cè)子組件

3、在子組件上綁定傳值

父組件

<template> 
<div class="hello">  
<ul>   
<li @click="changeFlag">點(diǎn)擊開(kāi)關(guān)----------------父組件默認(rèn)為{{flag}}</li>  
</ul>  
<v-child :childFlag='flag' @parentChangeFlag='parentChangeFlag'></v-child> 
//第三部 
</div>
</template>
<script>
import child from '子組件地址' //第一步
data(){
  return{
    flag:false  }},
components:{
   'v-child': child  //第二步
}
</script>

在第三步驟里,綁定了一個(gè)childFlag傳給子組件,其值為flag

子組件

< template > 
<div class = "hello" >
 <ul > 
<li@click = "parentChangeFlag" > 顯示 {
  {
    childFlag
  }
}---子元素: {
  {
    flag2
  }
} 
< /li>   
 <li @click="parentChangeFlag" v-show="childFlag"><img src="./images / ios_switch_off.png " alt="">
</li>   
<li @click="parentChangeFlag " v-show=" ! childFlag "><img src=". / images / ios_switch_on.png " alt=""></li>  
</ul> 
</div>
</template>
< script > export
default {
    props:
    {
      childFlag:
      {
        type:
        Boolean,
      default:
        true
      }
    },
    data() {
      return {
        flag2: this.childFlag
      };
    },
    watch: {
      childFlag(flag2) {
        this.flag2 = this.childFla
      }
    },methods: { // 子組件傳值給父組件  parentChangeFlag(){   this.flag2 = !this.flag2   this.$emit('parentChangeFlag',this.flag2)  } }};</script>

在父組件里,傳了一個(gè)childFlag下來(lái),我們要在子組件里去接收,方式用props,具體的可以看官方文檔, 創(chuàng)建接收之后呢,我們需要把傳進(jìn)來(lái)的值綁定給我們子組件的data值即(flag2),完成這一步的話,我們就完成了父組件往子組件進(jìn)行傳值。

上面只是完成了父?jìng)髯?,下面講述怎么子傳父

子組件所需做的事情:

首先,我們需要在子組件里進(jìn)行改變其狀態(tài)值,這樣我們就創(chuàng)建了一個(gè)parentChangeFlag點(diǎn)擊事件,進(jìn)而改變當(dāng)前的子元素的(flag2)值;

其次,改變完當(dāng)前的值,我們就要把子元素的狀態(tài)值給傳回父組件,這樣就用到了$emit方法,this.$emit('function',Value);   function指父組件里監(jiān)聽(tīng)子元素點(diǎn)擊事件的函數(shù);Value就代表你需要傳回父元素的值。

父組件所需做的事情:

在父組件中,創(chuàng)建一個(gè)監(jiān)聽(tīng)子元素改變data值的函數(shù)(即@parentChangeFlag='parentChangeFlag')

methods: {
  changeFlag() {
    //父組建點(diǎn)擊改變?cè)貍髦到o子組件  
    this.flag = !this.flag
  },
  parentChangeFlag: function(flag2) {
    //父組件監(jiān)聽(tīng)子組件點(diǎn)擊的函數(shù) flag2為子組件傳進(jìn)來(lái)的值,把值賦給當(dāng)前元素,就實(shí)現(xiàn)了父子之間的通信   
    console.log(flag2) this.flag = flag2
  }
}

當(dāng)你完成父子組件各自所需要的工作時(shí)候,就恭喜你了,已經(jīng)完成了Switch的效果,效果圖如下

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論