Vue3.0实现todolist- ref定义单个数据和reactive定义对象类型的数据
2023-06-13 09:11:15 时间
参考文档
参考文档:https://blog.csdn.net/ll666888999/article/details/123789098 参考视频:https://www.imooc.com/learn/1300 官方文档查看文档:https://v3.cn.vuejs.org/
1:ref定义单个数据
在vue3.0中,用谁就要引用谁
import { defineComponent,ref} from "vue";
- ref定义数据 引用ref,定义的数据在setup函数中定义,num初始值为10
setup() {
let num = ref(10);
let name = ref("jack");
return {
num,
name,
};
},
{{}}差值表达式,把数据名插入两个大括号里
<div>{{ num }}</div>
<div>{{ name }}</div>
这样就定义了一个num初始值为10,name初始值为Jack,运行结果:
====================================
- ref也可以定义数组
若要得到数组的第一项
setup() {
//定义数组
let arr = ref(["a", "b", "c", "d"]);
return {
arr,
};
},
<div>{{ arr[1] }}</div>
打印结果
====================================
- ref也可以定义对象
setup() {
///ref也可以定义对象
let obj = ref({
age: 20,
name: "wang",
});
return {
obj,
};
},
<div>{{ obj.age }}</div>
<div>{{ obj.name }}</div>
打印结果
Home.vue
<template>
<div>
<nav-header></nav-header>
<nav-main></nav-main>
<nav-footer></nav-footer>
<div>{{ num }}</div>
<div>{{ name }}</div>
<div>{{ arr[1] }}</div>
<div>{{ obj.age }}</div>
<div>{{ obj.name }}</div>
</div>
</template>
<script>
import NavHeader from "@/components/navHeader/NavHeader.vue";
import NavMain from "@/components/navMain/NavMain.vue";
import NavFooter from "@/components/navFooter/NavFooter.vue";
//reactive定义对象类型的数据
import { defineComponent, ref, reactive } from "vue";
export default defineComponent({
name: "Home",
props: {},
components: {
NavHeader,
NavMain,
NavFooter,
},
setup(props, ctx) {
let num = ref(10);
let name = ref("jack");
//定义数组
let arr = ref(["a", "b", "c", "d"]);
///ref也可以定义对象
let obj = ref({
age: 20,
name: "wang",
});
return {
num,
name,
arr,
obj,
};
},
});
</script>
<style>
</style>
2:reactive定义对象类型的数据 首先引用reactive
import { defineComponent, reactive } from "vue";
然后 定义对象类型的数据
setup() {
//方法定义
let data = reactive({
name: "wang",
age: 21,
obj: {
price: 20,
},
arr: ["a", "b", "c", "d"],
});
return {
data,
};
},
<div>{{ data.age }}</div>
<div>{{ data.name }}</div>
<div>{{ data.arr }}</div>
<div>{{ data.obj }}</div>
demo
<template>
<div>
<nav-header></nav-header>
<nav-main></nav-main>
<nav-footer></nav-footer>
<div>{{ data.age }}</div>
<div>{{ data.name }}</div>
<div>{{ data.arr }}</div>
<div>{{ data.obj }}</div>
</div>
</template>
<script>
import NavHeader from "@/components/navHeader/NavHeader.vue";
import NavMain from "@/components/navMain/NavMain.vue";
import NavFooter from "@/components/navFooter/NavFooter.vue";
//reactive定义对象类型的数据
import { defineComponent, reactive } from "vue";
export default defineComponent({
name: "Home",
props: {},
components: {
NavHeader,
NavMain,
NavFooter,
},
setup() {
//方法定义
let data = reactive({
name: "wang",
age: 21,
obj: {
price: 20,
},
arr: ["a", "b", "c", "d"],
});
return {
data,
};
},
});
</script>
<style>
</style>
如果不想写上面的data. 引用toRefs 可以把reactive定义的响应式对象转换成普通对象
import { defineComponent, reactive, toRefs } from "vue";
setup() {
//方法定义
let data = reactive({
name: "wang",
age: 21,
obj: {
price: 20,
},
arr: ["a", "b", "c", "d"],
});
return {
//data,
...toRefs(data)
};
},
<div>{{ age }}</div>
<div>{{ name }}</div>
<div>{{ arr }}</div>
<div>{{ obj }}</div>
相关文章
- 数据透视表上线!如何在纯前端实现这个强大的数据分析功能?
- JS如何把Object对象的数据输出到控制台中
- 使用request对象进行数据传递「建议收藏」
- 导出Seurat对象中的单细胞表达矩阵
- java复杂对象转json字符串_java处理json数据
- 【Techo Day腾讯技术开放日】如何查看 Series、DataFrame 对象的数据
- 对象属性的遍历和super关键字
- SpringMVC:域对象共享数据
- java的类和对象(二)
- SQLServer 错误 2574 表错误:对象 ID O_ID,索引 ID I_ID,分区 ID PN_ID,分配单元 ID A_ID(类型为 TYPE)中的页 P_ID 为空。 在 B 树的 LEVEL 级上,这是不允许的。 故障 处理 修复 支持远程
- java数据列表 分页对象详解编程语言
- Scalaz(26)- Lens: 函数式不可变对象数据操作方式详解编程语言
- 总结的一些json格式和对象/String/Map/List等的互转工具类详解编程语言
- NIO之Charset类字符编码对象详解编程语言
- Struts2 <action>元素:建立Action对象的映射
- 深入浅出Oracle的对象类型(oracle的对象类型)
- Oracle数据库导入用户对象实战经验(oracle导入用户对象)
- Redis:极大提高数据访问性能的缓存解决方案(redis缓存对象)
- MySQL BLOB类型:存储大对象数据的方法(mysql的blob)
- MongoDB对象:高效管理和组织数据的利器(mongodb对象)
- 探索Oracle数据库的奥秘数据对象(oracle中的数据对象)
- Oracle OE对象实现高效数据存储(oracle oe对象)
- aspadodb.stream对象的方法/属性
- 对象失去焦点时自己动提交数据的实现代码
- asp.net中对象失去焦点时自动提交数据V2
- Ruby和元编程之万物皆为对象