国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端vue中父子組件之間的傳值(修改值)和事件的相互調用

這篇具有很好參考價值的文章主要介紹了前端vue中父子組件之間的傳值(修改值)和事件的相互調用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

父組件向子組件傳值

子組件修改父組件中的值:

方法1

方法2

子組件調用父組件里的函數(shù)

方法1

方法2

父組件調用子組件的函數(shù)



父組件向子組件傳值

子組件中的 data 屬性是用來存儲子組件自身的數(shù)據(jù),而不是用來接收父組件傳遞的數(shù)據(jù)的。父組件向子組件傳遞數(shù)據(jù)的常用方式是通過 props

在 Vue.js 中,props 是一個屬性,可以用來從父組件傳遞數(shù)據(jù)到子組件。子組件可以接受這些數(shù)據(jù),并在其模板中使用它們。

//1.聲明組件模板對象
    const login = {
        template:'<div><h2>歡迎: {{ name }} 年齡:{{ age }}</h2></div>',
        props:['name','age']
    }
 
//2.注冊局部組件
    const app = new Vue({
        el: "#app",
        data: {
            username:"小陳陳",
            age:23
        },
        methods: {},
        components:{
            login //注冊組件
        }
    });

//3.使用組件
	 <login :name="username" :age="age"></login>  //使用v-bind形式將數(shù)據(jù)綁定Vue實例中data屬性,日后data屬性發(fā)生變化,組件內(nèi)部數(shù)據(jù)跟著變化

子組件修改父組件中的值:

在Vue中,子組件不能直接改變父組件的數(shù)據(jù),因為Vue是單向數(shù)據(jù)流的。但是可以通過觸發(fā)父組件的事件并傳遞數(shù)據(jù)來實現(xiàn)子組件改變父組件的數(shù)據(jù)。

方法1

具體步驟如下:

  1. 在父組件中定義一個方法,用于修改需要改變的數(shù)據(jù)。

  2. 在父組件模板中使用子組件,并為該組件綁定一個自定義事件,當子組件需要修改數(shù)據(jù)時,就會觸發(fā)這個事件。

  3. 在子組件中,使用 $emit 方法觸發(fā)自定義事件,并將需要修改的數(shù)據(jù)作為參數(shù)傳遞給父組件。

  4. 父組件接收到事件后,調用定義好的方法,修改數(shù)據(jù)。

示例代碼如下:

父組件:

<template>
  <div>
    <p>{{ message }}</p>
    <child-component @change-message="changeMessage"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent'

export default {
  name: 'ParentComponent',
  components: {
    ChildComponent
  },
  data() {
    return {
      message: ''
    }
  },
  methods: {
    changeMessage(newMessage) {
      this.message = newMessage
    }
  }
}
</script>

子組件:

<template>
  <div>
    <button @click="updateMessage">點擊我更新父組件的消息</button>
  </div>
</template>

<script>
export default {
  name: 'ChildComponent',
  methods: {
    updateMessage() {
      this.$emit('change-message', '新的消息')
    }
  }
}
</script>

在子組件中,我們定義了一個 updateMessage 方法,在該方法中調用 $emit 方法觸發(fā)自定義事件,并將字符串 '新的消息' 作為參數(shù)傳遞給父組件。在父組件中,我們定義了一個 changeMessage 方法,該方法將接收子組件傳遞過來的參數(shù),并將其賦值給 message 數(shù)據(jù),從而改變父組件的數(shù)據(jù)。

注意,父組件中使用 @change-message="changeMessage" 將自定義事件 change-message 和父組件的 changeMessage 方法綁定起來,這樣當子組件觸發(fā)自定義事件時,就會調用父組件中的方法。

方法2

如果使用 sync 修飾符,可以更簡便地實現(xiàn)子組件修改父組件數(shù)據(jù)的操作。

具體步驟如下:

  1. 在父組件中將需要修改的數(shù)據(jù)作為屬性傳遞給子組件,并使用 :value.sync 的語法,表示這是一個雙向綁定的屬性。

  2. 在子組件中,通過修改該屬性的值,就能夠直接修改父組件的數(shù)據(jù)。

示例代碼如下:

父組件:

<template>
  <div>
    <p>{{ message }}</p>
    <child-component :message.sync="message"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent'

export default {
  name: 'ParentComponent',
  components: {
    ChildComponent
  },
  data() {
    return {
      message: ''
    }
  }
}
</script>

子組件:

<template>
  <div>
    <button @click="updateMessage">點擊我更新父組件的消息</button>
  </div>
</template>

<script>
export default {
  name: 'ChildComponent',
  props: {
    message: String
  },
  methods: {
    updateMessage() {
      this.$emit('update:message', '新的消息')
    }
  }
}
</script>

在父組件中,我們將 message 屬性作為參數(shù)傳遞給子組件并使用 :value.sync 的語法來實現(xiàn)雙向綁定。子組件中可以直接修改 message 屬性的值,從而實現(xiàn)修改父組件數(shù)據(jù)的效果。在子組件中,我們使用 $emit 方法觸發(fā) update:message 事件,并將 '新的消息' 作為參數(shù)傳遞給父組件。

注意,在子組件中修改屬性值時,不能直接使用 this.message = '新的消息' 的語法,而是應該使用 $emit('update:message', '新的消息'),因為這樣才能夠正確地更新父組件中的數(shù)據(jù)。在父組件中,我們需要監(jiān)聽 update:message 事件,并將其綁定到一個方法上,用于更新父組件中的數(shù)據(jù)。

子組件調用父組件里的函數(shù)

方法1

在 Vue 中,可以通過 props 屬性將父組件中的函數(shù)傳遞給子組件。

首先,在父組件中定義一個函數(shù),例如:

methods: {
  handleClick() {
    // do something
  }
}

然后,在父組件中使用子組件時,將該函數(shù)作為 props 屬性傳遞給子組件,例如:

<template>
  <child-component :handleClick="handleClick" />
</template>

最后,在子組件中接收傳遞過來的函數(shù),并在需要的地方調用它,例如:

props: {
  handleClick: Function
},
methods: {
  someMethod() {
    // call the handleClick function from parent component
    this.handleClick();
  }
}

方法2

在Vue中,可以使用$emit方法向父組件派發(fā)一個自定義事件,并傳遞參數(shù)。父組件可以在模板中監(jiān)聽這個自定義事件,并定義相應的事件處理函數(shù)來響應子組件的操作。

具體的做法是,在子組件中通過this.$emit(event, [...args])方法觸發(fā)一個自定義事件,并傳遞需要的參數(shù)。父組件可以在模板中監(jiān)聽這個自定義事件,并定義一個相應的方法來處理子組件的操作。

例如:

<!-- 父組件 -->
<template>
  <div>
    <child-component @child-click="handleClick"></child-component> <!-- 監(jiān)聽子組件的自定義事件 -->
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent,
  },
  methods: {
    handleClick() {
      console.log('點擊了子組件的按鈕');
    }
  }
};
</script>

<!-- 子組件 -->
<template>
  <button @click="handleButtonClick">點擊我</button>
</template>

<script>
export default {
  methods: {
    handleButtonClick() {
      this.$emit('child-click'); // 觸發(fā)自定義事件
    }
  }
};
</script>

在上面的例子中,子組件定義了一個名為handleButtonClick的方法,當按鈕被點擊時會通過this.$emit('child-click')方法觸發(fā)一個自定義事件'child-click'。父組件在模板中監(jiān)聽了這個自定義事件,并定義了一個名為handleClick的方法來處理這個事件。當子組件中的按鈕被點擊時,會觸發(fā)自定義事件,并調用父組件中的handleClick方法。

父組件調用子組件的函數(shù)

在 Vue 中,父組件可以通過 $refs 屬性引用子組件,并調用其方法。具體步驟如下:

  1. 在子組件中,給需要調用的函數(shù)添加一個 ref 屬性,例如 myFunction。

  2. 在父組件中,通過 $refs 屬性獲取子組件實例,然后調用子組件的方法。示例代碼如下:

    <template>
      <div>
        <ChildComponent ref="child"></ChildComponent>
        <button @click="callChildMethod">調用子組件方法</button>
      </div>
    </template>
    
    <script>
    import ChildComponent from './ChildComponent.vue';
    
    export default {
      components: {
        ChildComponent
      },
      methods: {
        callChildMethod() {
          this.$refs.child.myFunction();
        }
      }
    }
    </script>
    
  3. 在上面的示例代碼中,父組件首先在模板中使用 <ChildComponent> 標簽引入了子組件,并設置了一個 ref 屬性為 child。然后,在父組件中定義了一個 callChildMethod 方法,該方法通過 this.$refs.child 獲取到子組件實例,然后調用了 myFunction 方法。

  4. 注意:只有當子組件已經(jīng)被掛載到 DOM 中才能使用 $refs。如果嘗試在子組件還沒有被掛載的時候獲取 $refs,則會返回 undefined。

    如果覺得組件之間的數(shù)據(jù)傳輸過于麻煩復雜的時候,可以學習vuexVuex詳解,一文徹底搞懂Vuex_Mr.指尖舞者的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-732437.html

到了這里,關于前端vue中父子組件之間的傳值(修改值)和事件的相互調用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • vue父子組件之間傳值的方法

    父傳子 方式: props 效果: 把父組件的 fatherName 屬性傳入子組件,在子組件中使用 父組件代碼: 子組件代碼: 子傳父 方式: $emit 效果: 在子組件觸發(fā)事件,修改父組件的fatherName屬性 父組件代碼: 子組件代碼: 兄弟傳值 方式: eventBus.js 效果: 任意組件之間相互傳值 代

    2024年02月09日
    瀏覽(94)
  • vue組件之間的五種傳值方法(父子\兄弟\跨組件)

    父傳子 (自定義屬性 props) 父組件向子組件傳參,通過自定義屬性的方式進行傳參,在子組件中使用prop定義自定義的屬性,然后在父組件中通過v-bind指令把需要傳遞的數(shù)據(jù)綁定在子組件上,那在子組件中props里面的自定義屬性可以直接使用。 子傳父 (自定義事件 this.$emit) 子組

    2023年04月08日
    瀏覽(40)
  • 【微信小程序】父子組件之間傳值

    【微信小程序】父子組件之間傳值

    1. 父組件向子組件 傳值 2. 子組件向父組件 傳值 父向子傳值使用的是 屬性綁定 ,子組件中的 properties 對象進行接收父組件傳遞過來的值。 子向父傳值使用的是 自定義事件 ,父組件通過自定義事件中的 事件對象e 來接收子組件傳遞過來的值。 1.1 在父組件的.json文件中導入子

    2024年02月16日
    瀏覽(23)
  • Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解

    Web前端 ---- 【Vue】(組件)父子組件之間的通信一文帶你了解

    目錄 前言 父組件傳子組件 ---- props 給要傳遞數(shù)據(jù)的子組件綁定要傳過去的屬性及屬性值 在子組件中使用props配置項接收 props配置項 子組件傳父組件 ---- 組件的自定義事件 子組件向父組件傳遞數(shù)據(jù) 通過代碼來綁定自定義事件 本文將介紹在Vue中父子組件如何進行通信 這里先介

    2024年02月05日
    瀏覽(631)
  • Web前端 ---- 【vue】vue 組件傳值(props、全局事件總線、消息的訂閱與發(fā)布)

    Web前端 ---- 【vue】vue 組件傳值(props、全局事件總線、消息的訂閱與發(fā)布)

    目錄 前言 父子組件 父傳子 子傳父 全局事件總線 什么叫全局事件總線 如何創(chuàng)建全局事件總線 如何在組件上獲取到這個全局vc對象 最常用的創(chuàng)建全局事件總線 兄弟組件 消息訂閱與發(fā)布 安裝 使用 爺孫組件 在上篇文章我們介紹了父子組件之間的傳值通信,本文將介紹不僅限

    2024年02月05日
    瀏覽(53)
  • react自定義組件間的傳值,if..else..判斷,for循環(huán)(嵌套map使用),點擊事件(Onclick),頁面上事件實事傳遞參數(shù)(基礎版)

    9.自定義組件間的傳值 10.if..else..判斷 11.for循環(huán)(嵌套map使用) 12.點擊事件(Onclick) 13.頁面上事件實事傳遞參數(shù) 14.關于export default function App()與export function App()的區(qū)別 ? ?export default不需要{} ? ? ?import ?Gallery from \\\'./Gallery.js\\\'; ? ?export function需要{} ? ? ? import {Gallery} from \\\'./Galler

    2024年01月17日
    瀏覽(29)
  • vue3 父子組件傳值 記錄

    vue3 父子組件傳值 記錄

    最近這個組件之間傳值用的較多,我這該死的記性,總給忘記寫法,特此記錄下 補充:LeftView.vue 是父組件; Video.vue 是子組件 Video.vue 子組件 LeftView.vue 父組件 第一步 創(chuàng)建bus.js文件 第二步 分別在需要相互傳參的組件中引入bus.js文件,并相互傳參

    2024年02月11日
    瀏覽(22)
  • vue父子組件傳值不能實時更新

    vue父子組件傳值不能實時更新

    最近做項目,遇到個大坑,這會爬出來了,寫個總結,避免下次掉坑。 vue父子組件傳值不能實時更新問題,父組件將值傳給了子組件,但子組件顯示的值還是原來的初始值,并沒有實時更新,為什么會出現(xiàn)這種問題呢? 出現(xiàn)這個問題,可能有以下兩個原因: 一、 父組件沒有

    2024年02月16日
    瀏覽(25)
  • vue父子組件傳值(v-model)

    子組件使用 props 接收父組件傳來的值 1)這里有個大坑, el-dialog 中一定要用 model-value 來代替 v-model ,不能用 v-model ,否則會報錯 (2)子組件中修改父組件傳入的參數(shù) visible 時,使用 ??方式

    2024年02月11日
    瀏覽(26)
  • Vue3 TS寫法 父子組件傳值(通訊)

    父組件: 子組件: 通過defineProps來接受數(shù)據(jù)(無須引入直接使用即可) 子組件可寫默認值也可以不寫兩種情況 子組件通過defineEmits派發(fā)一個事件?(一樣無須引入直接使用即可) ?父組件接受子組件的事件 chilFun

    2024年02月15日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包