亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue3子組件改變父組件的值(props)reactive和ref的區(qū)別及說明

 更新時間:2025年05月06日 11:18:43   作者:Lysun001  
這篇文章主要介紹了vue3子組件改變父組件的值(props)reactive和ref的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue3子組件改變父組件的值(props)reactive和ref區(qū)別

其實關于子組件改變父組件的值,直接改是不可以的,我們一般通過綁定事件來改變,但是如果是reactive里面的復雜數據類型,我們只要不改變其內存地址,是可以改變復雜數據類型里面的值的

下面看相關代碼,父子組件的層級如圖

父組件代碼

<template>
  <h1>ref定義的值{{refNum}}</h1>
  <h1>reactive定義的值{{reactiveNum}}</h1>
  <h1>reactive定義的數組{{reactiveArr}}</h1>
  <little
    :refNum="refNum"
    :reactiveNum="reactiveNum"
    :reactiveArr="reactiveArr"
  ></little>
</template>

<script>
import little from './little'
import { toRefs, reactive, ref } from 'vue'
export default {
  name: "big",
  components: { little },
  setup () {
    const refNum = ref(0)// 不能直接通過子組件改變
    const reactiveObj = reactive({
      reactiveNum: 0,  // 不能直接通過子組件改變
      reactiveArr: [1, 2, 3]  // 不改變內存地址,可以通過子組件之間改變里面的值
    })
    return {
      refNum,
      ...toRefs(reactiveObj)
    }
  }
}
</script>

<style>
</style>

子組件

<template>
  <button @click="changeRefVal">點我改變ref的值</button>
  &nbsp;&nbsp;
  <button @click="changeReactiveVal">點我改變reactive的值</button>
  &nbsp;&nbsp;
  <button @click="changeReactiveArr">點我改變reactive的數組</button>
</template>

<script>
export default {
  name: "little",
  props: ["refNum", "reactiveNum", "reactiveArr"],
  setup (props, context) {
    // 改變 ref 的值
    const changeRefVal = () => {
      props.refNum++ // 報警告,不生效
    }
    // 改變 reactive 里面的值
    const changeReactiveVal = () => {
      props.reactiveNum++ // 報警告,不生效
    }
    // 改變 reactive 里面的數組
    const changeReactiveArr = () => {
      //   props.reactiveArr = [1, 2, 3, 4]  // 報警告,不生效
      props.reactiveArr.push(4) // 生效
    }
    return {
      changeRefVal,
      changeReactiveVal,
      changeReactiveArr
    }
  },
}
</script>

<style>
</style>

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue.js實現可配置的登錄表單代碼詳解

    Vue.js實現可配置的登錄表單代碼詳解

    這篇文章主要介紹了Vue.js實現可配置的登錄表單實例代碼詳解,文中給大家補充介紹了vue.js 全選與取消全選的實例代碼,需要的朋友可以參考下
    2018-03-03
  • 在Vue-cli里應用Vuex的state和mutations方法

    在Vue-cli里應用Vuex的state和mutations方法

    今天小編就為大家分享一篇在Vue-cli里應用Vuex的state和mutations方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vuex分模塊后,實現獲取state的值

    vuex分模塊后,實現獲取state的值

    這篇文章主要介紹了vuex分模塊后,實現獲取state的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • 一份超級詳細的Vue-cli3.0使用教程【推薦】

    一份超級詳細的Vue-cli3.0使用教程【推薦】

    這篇文章主要介紹了一份超級詳細的Vue-cli3.0使用教程,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • vue引入Excel表格插件的方法

    vue引入Excel表格插件的方法

    這篇文章主要為大家詳細介紹了vue引入Excel表格插件的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Vue-Cli配置代理轉發(fā)解決跨域問題的方法

    Vue-Cli配置代理轉發(fā)解決跨域問題的方法

    本文主要介紹了Vue-Cli配置代理轉發(fā)解決跨域問題的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • vue使用Proxy實現雙向綁定的方法示例

    vue使用Proxy實現雙向綁定的方法示例

    這篇文章主要介紹了vue使用Proxy實現雙向綁定的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • vue elementui簡易側拉欄的使用小結

    vue elementui簡易側拉欄的使用小結

    這篇文章主要介紹了vue elementui簡易側拉欄的使用,增加了側拉欄,目的是可以選擇多條數據展示數據,本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • 解決vue-cli webpack打包開啟Gzip 報錯問題

    解決vue-cli webpack打包開啟Gzip 報錯問題

    這篇文章主要介紹了vue-cli webpack打包開啟Gzip 報錯問題的解決方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • vue深入解析之render function code詳解

    vue深入解析之render function code詳解

    vue對大家來說應該再熟悉不過了,下面這篇文章主要給大家深入的解析了vue之render function code的相關資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-07-07

最新評論