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

vue中props賦值給data出現的問題及解決

 更新時間:2022年10月18日 10:33:50   作者:weixin_43848098  
這篇文章主要介紹了vue中props賦值給data出現的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue props賦值給data問題

vue 中父組件向子組件傳遞數據用 props, 但是子組件是無法修改它的。

如果子組件需要動態(tài)修改它就只能自造一個對應的 data 域。

比如:

components:{Tinymce},
? props:['id','formDatas'],
? data() {
? ? return {
? ? ? form: {
? ? ? ? title: '',
? ? ? ? title_type: '',
? ? ? ? push_date: '',
? ? ? ? source: '',
? ? ? ? title_introduce: '',
? ? ? ? title_content:'',
? ? ? }
? ? }
? },
? created(){
? ? this.form = this.formDatas
? },

這樣是無法把props的值傳遞給data里面,因為data()只會運行一次,所以要用watch來進行監(jiān)聽props里面內容的變化,然后對data里面進行賦值

?watch:{
? ? formDatas(news,olds){
? ? ? this.form = news
? ? }
? }

因此當父組件傳遞值給子組件的時候,watch就會監(jiān)聽到formDatas的變化,將新的值賦給你想要傳值的data,然后進行改變。

props賦值給data 數據變化

問題:當組件props里的某個值(a)(a值要是對象引用類型的數據)賦給了data對象里的某個值 (b); 當a值發(fā)生了變化,b值還是最開始的a值, 但實際應該是b值是最新的a值

例如

<template>
  
</template>
 
<script>
export default {
    name:'child '
    props:{
        a:{
            type:Object
        }
    },
    data(){
        return{
            b:this.a
        }
    },
    mounted(){
        console.log("b",this.b) //打印出來是a:{a1:1}
        //a值改變后打印b值
         console.log("b",this.b) //打印出來還是a:{a1:1}
    }
}
</script>
 
<style>
 
</style>
<!-------------------------------------------------------->
<template>
   <!---引用子組件--->
  <child :a="a"></child>
</template>
 
<script>
export default {
    data(){
        return{
            a:{
                a1:1
            }
        }
    },
    mounted(){
        //改變a值
        this.a.a1 = 2
    }
    
}
</script>
 
<style>
 
</style>

原因:因為data深拷貝的props的值,data無法隨著props的變化而更新;

解決:watch、computed可以解決

<template>
??
</template>
?
<script>
export default {
? ? name:'child '
? ? props:{
? ? ? ? a:{
? ? ? ? ? ? type:Object
? ? ? ? }
? ? },
? ? data(){
? ? ? ? return{
? ? ? ? ? ? b:this.a
? ? ? ? }
? ? },
? ? watch:{
? ? ? ? a(val){
? ? ? ? ? ? //當a值變化時
? ? ? ? ? ? this.b = this.a
? ? ? ? }
? ? },
? ? mounted(){
? ? ? ? //a值改變后打印b值
? ? ? ? ?console.log("b",this.b) //打印出來就是最新值了 ? a:{a1:2}
? ? }
}
</script>
?
<style>
?
</style>

  

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

相關文章

  • Vite版本更新檢查實現頁面自動刷新的解決思路

    Vite版本更新檢查實現頁面自動刷新的解決思路

    這篇文章主要給大家介紹了關于Vite版本更新檢查實現頁面自動刷新的解決思路,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-02-02
  • Vue中如何動態(tài)顯示表格內容

    Vue中如何動態(tài)顯示表格內容

    這篇文章主要介紹了Vue中如何動態(tài)顯示表格內容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue封裝tabs組件案例詳解

    vue封裝tabs組件案例詳解

    這篇文章主要為大家詳細介紹了vue封裝tabs組件案例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 關于vue-property-decorator的基礎使用實踐

    關于vue-property-decorator的基礎使用實踐

    這篇文章主要介紹了關于vue-property-decorator的基礎使用實踐,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue中swiper?vue-awesome-swiper的使用方法及各種坑解決

    vue中swiper?vue-awesome-swiper的使用方法及各種坑解決

    這篇文章主要介紹了vue中swiper?vue-awesome-swiper的使用方法及各種坑解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue filter介紹及詳細使用

    Vue filter介紹及詳細使用

    這篇文章主要介紹了Vue filter介紹及詳細使用,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • vue v-for 點擊當前行,獲取當前行數據及event當前事件對象的操作

    vue v-for 點擊當前行,獲取當前行數據及event當前事件對象的操作

    這篇文章主要介紹了vue v-for 點擊當前行,獲取當前行數據及event當前事件對象的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • vue3-HTTP請求方式

    vue3-HTTP請求方式

    這篇文章主要介紹了vue3-HTTP請求方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 詳解用vue2.x版本+adminLTE開源框架搭建后臺應用模版

    詳解用vue2.x版本+adminLTE開源框架搭建后臺應用模版

    這篇文章主要介紹了用vue2.x版本+adminLTE開源框架 搭建后臺應用模版,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • vue-cli入門之項目結構分析

    vue-cli入門之項目結構分析

    本篇文章主要介紹了vue-cli入門之項目結構,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04

最新評論