vue3 定义响应式数据的多种方式及分析

39 篇文章 0 订阅
  • ref

    • 定义基本类型的响应式数据,原理通过Object.defineProperty()getset完成的。(对象类型不要用它,要用reactive函数)
  • reactive

    • 定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数)
  • shallowReactive

    • 只处理对象最外层属性的响应式(浅响应式)
  • shallowRef

    • 只处理基本数据类型的响应式, 不进行对象的响应式处理
  • readonly

    • 让一个响应式数据变为只读的(深只读)
    • 应用场景: 不希望数据被修改时
  • shallowReadonly

    • 让一个响应式数据变为只读的(浅只读)
    • 应用场景: 不希望数据被修改时
  • toRaw

    • 作用:将一个由reactive生成的响应式对象转为普通对象
    • 应用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。
  • markRaw

    • 作用:标记一个对象,使其永远不会再成为响应式对象。
    • 应用场景:
      • 有些值不应被设置为响应式的,例如复杂的第三方类库等。
      • 当渲染具有不可变数据源的大列表时,跳过响应式转换可以提高性能
微信扫一扫,免费保护车主号码隐私挪车码即可到手免费使用

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3中实现表单数据回显的方法有多种。其中一种常见的方法是使用响应式数据。您可以将表单数据保存在一个响应式对象中,然后在组件中使用这些数据进行回显。 首先,您需要在组件中定义一个响应式对象,来保存表单数据。可以使用`reactive`函数来创建一个响应式对象。例如,在Vue3中,您可以这样定义一个响应式对象: ``` const state = reactive({ remark: '', dictId: 0, dictName: '', dictType: '', status: '0', }); ``` 接下来,您可以通过将表单数据传递给组件的props属性来实现数据的回显。当父组件传递新的表单数据时,您可以使用`watch`函数来监听这些数据的变化,并更新响应式对象的值。例如,在Vue3中,您可以这样实现表单数据的回显: ``` watch(() => formData, (value) => { state.remark = value.remark; state.dictId = value.dictId; state.dictName = value.dictName; state.dictType = value.dictType; state.status = value.status; }, { immediate: true, deep: true }); ``` 最后,您可以在模板中使用这些响应式数据来回显表单数据。例如,在Vue3中,您可以这样使用响应式数据来回显表单数据: ``` <template> <div> <label>Remark:</label> <input v-model="state.remark" /> <label>Dict ID:</label> <input v-model="state.dictId" /> <label>Dict Name:</label> <input v-model="state.dictName" /> <label>Dict Type:</label> <input v-model="state.dictType" /> <label>Status:</label> <input v-model="state.status" /> </div> </template> ``` 通过这种方式,您可以将父组件传递的表单数据回显到子组件的输入框中。请注意,上述代码仅为示例代码,具体实现可能会根据您的项目需求而有所不同。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值