vue动态绑定class与vue3组合API
vue提供动态绑定class的方法,是根据属性控制控制class的显示与隐藏。
testStyle,testStyle2是类名,是否在元素中引用该类,取决于后面的方法(属性)传递回来的值(true 或 false)
<template> <div> <div :class="{testStyle:testComputed}">123</div> <div :class="{testStyle2:testMethod}">456</div> <!-- 传递参数,推荐使用methods控制,computed需要写闭包 --> <div v-for="(item, index) in tableData" :key="index" :class="{testStyle:testComputed2(item)}">123</div> <div v-for="(item, index) in tableData" :key="index" :class="{testStyle2:testMethod2(item)}">123</div> </div> </template> <script> export default { name: "computed", data() { return { test: false, tableData: [true, false, true], }; }, methods: { testMethod() { return true; }, testMethod2(flag) { return flag; } }, computed: { testComputed: () => { return true; }, testComputed2: () => { return item => { return item; } } }, }; </script> <style lang="scss" scoped> .testStyle { color: red; } .testStyle2 { color: blue; } </style>
如果需要在绑定的方法中传递参数,推荐写到methods中,这种方式的代码更加简洁易懂。使用computed传参用到了闭包
Vue3组合API-----setup()
1.Vue3最重要的新特性之一:
作用:
之前vue对象规定了我们必须把某一类数据放到某一个结构中,这样在一定程度上对我们的代码进行了强制的分割。而在vue3 中我们引入了setup()合成API语法,他可以将某数据关联的内容都整合到一个部分,即使setup()中的内容越来越多,也会围绕着大而不乱的形式开发项目。
2.setup组合api特点:
(1) 更加直观,接近原生js
(2) 按需加载
(3)没有this,降低了耦合性,提高复用性
3.setup():
(1)setup()结构中定义的变量,函数都需要return之后才可以在模板中使用,
(2).setup()是处于created生命周期之前的函数,也就是说data,methods中的数据是无法访问到的,setup()结构中的this指向
undefined ref :在setup中只能包装字符串或数字形式的数据(值),使其变为响应式数据 (3)setup函数只能是同步的不能是异步的。
1.setup 组件选项:
- 新的 setup 选项在组件创建之前执行,一旦 props 被解析,就将作为组合式 API 的入口。
- setup 中避免使用 this , setup的调用 在 data 、methods、computed 解析之前
- setup 选项是一个接收 props 和 context 的函数
- 将setup 返回的函数 暴露给 组件的其余部分 (计算属性、方法、生命周期)
2.ref值类型 响应对象:
refs: 可以直接在html模板中使用对象的属性名当变量,不需要用 . 访问 ,实现对简单值的监听
ref注意点:
-在vue(template)中使用ref的值不用通过value获取
-在TS中使用ref的值必须通过value获取
const count = ref(5),在setup访问count值,count.value 来访问
3.reactive 引用类型 响应式:
reactive: 在setup中包装对象,数组形式的数据(对象/数组),使其变成响应式数据
reative注意点:
-reative参数必须是对象(json/array);
-如果给reactive传递了其他对象
-默认情况下修改对象,界面不会自动更新
-如果想更新,可以通过重新赋值的方式
const list = reactive(默认值)x
list = xxx 直接赋值破坏了引用√
list.push(xxx)
4. ref和reactive的区别:
vue在解析数据之前,会自动判断在template里使用的数据是否是ref类型的,如果是,vue自动添加.value
如果在templatel里使用的是reactive类型的数据,则vue不会自动添加.value。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端