大家都知道vue3在9月18號晚上發(fā)布了,在vue3中對響應(yīng)式數(shù)據(jù)的聲明官方給出了ref()和reactive()這兩種方式,今天我們來聊聊兩種定義定義數(shù)據(jù)方式有什么不同
如上代碼酷师,我們使用變量聲明的方式纱注,ref的方式腮猖,reactive的方式定義的三個變量狸棍,num1,num2,num3
我們發(fā)現(xiàn)使用ref定義的數(shù)據(jù)身害,打印結(jié)果是一個被對象包裹的響應(yīng)的數(shù)據(jù),使用reactive的方式和純變量聲明的方式打印結(jié)果是一樣的草戈,這是什么原因呢题造?
我們發(fā)現(xiàn)在控制臺輸出一個警告信息, 提示100這個值不能被reactive創(chuàng)建猾瘸,官方也推薦我們在定義數(shù)據(jù)的時候,reactive定義復(fù)雜的數(shù)據(jù)類型的數(shù)據(jù)丢习,ref推薦定義基本數(shù)據(jù)類型牵触,所以如果要使用reactive定義基本數(shù)據(jù)類型的話,我們需要在reactive中將數(shù)據(jù)包裝一下
我們在使用reactive定義數(shù)據(jù)的時候用對象做一層包裹咐低,這樣控制臺就不會報警告信息了揽思,
但是使用reactive定義的數(shù)據(jù)和ref定義的數(shù)據(jù)打印結(jié)果有一些差異
我們發(fā)現(xiàn)ref定義的數(shù)據(jù)打印結(jié)果需要.value才能獲取到結(jié)果,而reactive則不需要
總結(jié):
reactive 和 ref 都是用來定義響應(yīng)式數(shù)據(jù)的 reactive更推薦去定義復(fù)雜的數(shù)據(jù)類型 ref 更推薦定義基本類型
ref 和 reactive 本質(zhì)我們可以簡單地理解為ref是對reactive的二次包裝见擦, ref定義的數(shù)據(jù)訪問的時候要多一個.value
使用ref定義基本數(shù)據(jù)類型钉汗,ref也可以定義數(shù)組和對象。
原文:https://baijiahao.baidu.com/s?id=1681607468071125946&wfr=spider&for=pc