首页 > 其他分享 >vue3.5 测试props解构能不能响应式

vue3.5 测试props解构能不能响应式

时间:2024-10-20 20:44:02浏览次数:1  
标签:abc vue3.5 reactive 解构 响应 测试 props

代码测试

<template>
  <div class='box'>
    demo:{{ d }}
    <div>
      <child :abc='abc' />
    </div>
  </div>
</template>
<script lang='ts' setup>
import { ref, reactive, computed, onMounted, nextTick, PropType } from 'vue';
import child from "./components/child.vue"

const abc = reactive({
  a: {
    b: {
      c: "1111"
    }
  },
  d: "2222"
})
// 测试解构reactive对象的子属性能不能响应式
let { d } = abc;

console.log(d, "dddddddddddddddddddddddddddddddd")

setTimeout(() => {
  //直接d赋值,经测试不能响应式
  d = "3333"
  //测试子组件的props解构能不能响应式
  abc.d = "props 解构测试"
}, 2000)



</script>
<style lang='scss' scoped></style>

结论

  • 3.5 props第一层解构能够响应式,打印出来是proxy对象
  • props第二层的解构不能响应式,只是一个常数而已,不是proxy对象

标签:abc,vue3.5,reactive,解构,响应,测试,props
From: https://www.cnblogs.com/jocongmin/p/18487848

相关文章

  • React中使用props
    目录1.模拟数据2.传递数据3.接收并使用数据3.结果展示实现根据数据渲染卡片(卡片数量根据数据动态、卡片框架样式相同,内容不同)1.模拟数据exportdefault[{id:1,title:"LifeLessonswithKatieZaferes",description:"Iwillsharewith......
  • vue3使用pinia仓库解构赋值响应式丢失的解决方式
    代码storeimport{defineStore}from"pinia";import{ref}from"vue";exportconstuseMyTestStore=defineStore('mytestStore',()=>{//stateconstcount=ref(0);constcount2=ref(1);constincrement2......
  • vue3中的defineProps,defineEmits,defineExpose的使用详解
    defineProps 和 defineEmits 都是只能在 <scriptsetup> 中使用的编译器宏。他们不需要导入,且会随着 <scriptsetup> 的处理过程一同被编译掉。defineProps 接收与 props 选项相同的值,defineEmits 接收与 emits 选项相同的值,它们具备完整的类型推断并且在scriptse......
  • 看不懂来打我!让性能提升56%的Vue3.5响应式重构
    前言在Vue3.5版本中最大的改动就是响应式重构,重构后性能竟然炸裂的提升了56%。之所以重构后的响应式性能提升幅度有这么大,主要还是归功于:双向链表和版本计数。这篇文章我们来讲讲使用双向链表后,Vue内部是如何实现依赖收集和依赖触发的。搞懂了这个之后你就能掌握Vue3.5重构后的响......
  • VUE:子组件的mounted中获取不到props中的值问题
    现象:mounted读取list为空断点放过去,界面却显示数据正常处理:props:{list:{type:Array}},watch:{list:{handler(newVal,oldVal){console.log('initfinish:',newVal)//后续待处理写在这里......
  • vue3 props 响应式测试,props使用,ref独立ts解构
    概论vue3的props是深度响应的,深度数据改变都能监听到,并改变模板3.2左右的版本解构props子对象不能响应式若遇到props子对象不能响应式监听,一般就是改变之前的数据和改变之后的数据没产生变化,所以没发生响应式代码父组件<template><divclass='box'>demo<c......
  • [Javascript] Using defineProperty to observe the object props changes
    constobj={a:1,b:2,c:{a:1,b:2,},};functionisObject(val){returnval!==null&&typeofval==="object";}functionobserve(obj){for(letkeyinobj){letv=obj[key];if(isObject(v)){......
  • 解构UI设计
    解构UI设计第一章界面类型1.1闪屏页又称为启动页,就是APP启动在进入功能主界面前用户看到的页面。闪屏页决定了用户对App的第一印象。闪屏页显示的时间很短,通常只有1秒。闪屏页分为品牌宣传型、节日关怀型和活动推广型3种类型。1.1.1品牌宣传型App的闪屏页是为体现产品......
  • TypeScrip在vue中的使用-----defineProps
    小知识点:在vscode中定义好子组件的vue视图后。我们可以直接使用<子组件/>来使用子组件,因为我们使用了import插件,他会自动import所需文件。使用一:父向子传值,我们之前父向子传值的时候,子组件是如下:defineProps({house:{type:String,required:true,......
  • JS进阶 1——作用域、解构、箭头函数
    JS进阶1——作用域、解构、箭头函数1.作用域局部作用域分为:函数作用域和块作用域函数作用域:在函数内部声明的变量只能在函数内部被访问块作用域:被{}包裹的代码成为代码块,代码块内部声明的变量外部将有可能无法访问var声明的不会产生块作用域全局作用域:<scri......