当前位置: 首页 > news >正文

vue3中如何定义响应式变量

vue2中定义方式:

熟悉vue2的前端开发小伙伴,都知道定义变量的方式是属于 选项式写法,所有的变量名全都定义在 data(){return { title:‘hello world’}},里,如下图所示:

<template><div><h1>{{title}}</h1><button @click="sayHi">按钮</button></div>
</template><script>
export default {//这种是option api(选项api)data(){return {title:'hello world'}},methods:{sayHi(){this.title = "hello vue";}}
}
</script>

那么,在vue3中定义变量的方式是组合式写法,在setup函数里,提供了ref和reactive

<template><div><h1>{{title}}</h1><h1>{{person}}</h1><button @click="sayHi">按钮</button></div>
</template><script>
//引入vue中的一个方法
import {ref,reactive} from 'vue';  //ref可以把字符串变成响应式变量 ,reactive可以把对象变成响应式对象
export default {//composition api(组合api)setup(){let title = ref("hello world");const person = reactive({"name":"小明",age:2});function sayHi(){title.value = "hello Vue"person.name ="小张"}return{title,sayHi,person}}
}
</script>

reactive更推荐去定义复杂的数据类型 ref 更推荐定义基本类型,ref也可以定义数组和对象,但ref操作数据需要.value,注意在template模板中不需要。reactive一直都不需要.value,但是用reactive() 创建的响应式对象,整个对象是响应式的但对象里的每一项都是普通的值,当你把它用展开运算符展开后 整个对象的普通值都不是响应式的,所以需要展开 reactive() 创建的响应式对象 又不想让他们失去响应式特点的时候 就需要用 toRefs() 将它进行转换

http://www.lryc.cn/news/14137.html

相关文章:

  • 【C++修炼之路】20.手撕红黑树
  • 树状数组(高级数据结构)-蓝桥杯
  • Flink-多流转换(Union、Connect、Join)
  • kubeadmin安装k8s集群
  • java3月train笔记
  • Apollo Config原理浅析
  • Kubernetes二 Kubernetes之实战以及pod详解
  • 机械革命黑苹果改造计划第四番-外接显示器、win时间不正确问题解决
  • Linux docker(03)可使用GPU渲染的x11docker实战总结
  • 【Linux操作系统】【综合实验一 Linux操作基础】
  • 关于监控服务器指标、CPU、内存、警报的一些解决方案
  • vue3全家桶技术栈基础(一)
  • 群晖-第2章-设置HTTPS访问
  • 005 利用fidder抓取app的api,获得股票数据
  • 京东测试进阶之路:初入测试碎碎念篇
  • 华为OD机试 - 乘积最大值(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
  • Java并发知识点
  • 前端 ES6 环境下 require 动态引入图片以及问题
  • PCL 欧氏聚类分割
  • 一台服务器最大能支持多少条TCP连接
  • Teradata退出中国,您可以相信中国数据库!
  • markdown组合数学公式
  • Golang实践录:一个字符串比较示例
  • Linux后台开发工具箱-葵花宝典
  • http的请求上下文
  • 【MySQL】MySQL表的增删改查(进阶)
  • C++ Primer Plus习题及答案-第十八章
  • Redis事务控制
  • Springcloud OpenFeign 详解
  • 软件测试期末