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

VUE3-01

1.选项式和组合式

        选项式API:按照作用组织代码

        组合式API:按照功能组织代码

2.<script setup>

<template><div class="about"><h1>{{name}}</h1><button @click="sayHello">测试</button></div>
</template><script setup lang="ts">
const name: string = "天亮教育"function sayHello() {alert("hello")
}
</script>

        2.1 VUE3默认的数据是非响应式的

                响应式:数据变化后,界面会刷新

                非响应式:数据变化后,界面不会刷新

        2.2 VUE3提供了api,可以把非响应式数据转成响应式

                ref-----针对基础数据类型,可以操作基础数据类型,也可以操作引用数据类型,但读写

        数据时需要加 ‘.value’

                        写法:const xxx = ref(initValue) 

                                 js中操作数据: xxx.value

                                 模板中操作数据:不需要.value

                        原理:响应式依靠Object.defineProperty()getset完成

const data={name:"张三"
}
const dataProxy={name:"张三"
}
Object.defineProperty(data,'name',{get(){console.log("获取name")return dataProxy.name},set(value){dataProxy.name=valueconsole.log("劫持到设置name属性")}
})
data.name="王五"

                reactive-----针对引用数据类型,只能操作引用数据类型,不加 ‘.value’

                        语法:const 代理对象= reactive(源对象)接收一个对象(或数组),返回一个

                代理对象(Proxy的实例对象,简称proxy对象)

                         原理:内部基于 ES6 的 Proxy 实现,通过代理对象操作源对象内部数据进行操作

const data1={name:"张三",
}
const dataProxy1=new Proxy(data1,{get(target,prop):any{console.log("劫持到了代理获取属性"+<string>prop)return target[prop]},set(target,p,newValue):boolean{console.log("劫持到了设置属性"+<string>p)target[p]=newValuereturn true},deleteProperty(target:{name:string},p:string|symbol):boolean{console.log("劫持属性删除")delete target[p]return true}
})console.log(dataProxy1.name)
dataProxy1.name="王五"
delete dataProxy1.name

3.vue中手动触发界面刷新

        3.1当修改数据,界面没有响应式刷新的时候可以用 

                this.$forceUpdate() 

         3.2 nextTick() 可以在状态改变后立即使用,它接受一个回调函数作为参数,该回调函数会在 DOM 更新周期结束时执行。nextTick() 方法可以将异步操作推迟到下一个 DOM 更新周期中执行,从而确保了在数据改变之后正确地获取到更新后的 DOM。

        在vue3中,nextTick()是一个Promise对象,因此我们也可以使用 await 返回的 Promise。

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

相关文章:

  • 分库分表之基于Shardingjdbc+docker+mysql主从架构实现读写分离(二)
  • Python 进阶(四):日期和时间(time、datetime、calendar 模块)
  • Transformer背景介绍
  • 深入理解BeanDefinition和Spring Beans
  • 实验六 调度器-实验部分
  • 基于飞桨paddle波士顿房价预测练习模型测试代码
  • 只会“点点点”,凭什么让开发看的起你?
  • 35.图片幻灯片
  • CentOS7系统Nvidia Docker容器基于TensorFlow2.12测试GPU
  • Go 下载安装教程
  • InnoDB数据存储结构
  • 基于ts的浏览器缓存工具封装(含源码)
  • GIT涵盖工作中用的相关指令
  • 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一)
  • [JAVAee]文件操作-IO
  • 【数据集】3小时尺度降水数据集-MSWEPV2
  • Springboot之把外部依赖包纳入Spring容器管理的两种方式
  • 更安全,更省心丨DolphinDB 数据库权限管理系统使用指南
  • WPS本地镜像化在线文档操作以及样例
  • STM32 Flash学习(一)
  • Spring中IOC容器常用的接口和具体的实现类
  • 【MySQL】索引特性
  • 【深度学习笔记】动量梯度下降法
  • 《TCP IP网络编程》第十二章
  • 基于CNN卷积神经网络的调制信号识别算法matlab仿真
  • 正则,JS:this,同步异步,原型链笔记整理
  • 【NOIP】小鱼的数字游戏题解
  • 算法的时间复杂度、空间复杂度如何比较?
  • We are the Lights 2023牛客暑期多校训练营4-L
  • ant-design-vue中table组件使用customRender渲染v-html