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

上海网站制作机构西安复工无需核酸检测

上海网站制作机构,西安复工无需核酸检测,深圳网站建设价格是多少钱,汕头站扩建什么时候完成ref相关API介绍1、ref()(1)ref介绍 ref用于定义基本数据类型,比如:string / boolean / number等(因为这几个没办法代理)。 ref的背后是使用reactive来实现的响应式。 使用.value来访问变量的值。&#xff0…

ref相关API介绍

1、ref()

(1)ref介绍
ref用于定义基本数据类型,比如:string / boolean / number等(因为这几个没办法代理)。
ref的背后是使用reactive来实现的响应式。
使用.value来访问变量的值。

(2)打印一个ref对象

RefImpl引用实现,就是个响应式变量
因为Vue3给基本数据类型外面包了一层(做了Proxy()代理,加get、set钩子),你传了1000进来,得到的是对象
num = {
value: 1000
}

(3)ref的变量在视图模板中都不要加.value,因为指令会自动加

2、isRef()

(1)作用:判断一个变量是否为一个ref对象
(2)语法:const bol = isRef(x)

3、unref()

(1)作用:用于返回一个值,如果访问的是ref变量,就返回其.value值。如果不是ref变量就直接返回
这是 val = isRef(val) ? val.value : val 计算的一个语法糖
(2)语法:const x = unref(y)

4、customRef()

(1)作用:自定义ref对象,把ref对象改写成get/set,进一步可以为它们添加track/trigger

(2)、customRef()关联的生命周期钩子
onRenderTracked()
onRenderTriggered()
这两个是用于调试的,只能在开发环境使用,生产环境不起作用。用来对变量进行劫持。

    const name = customRef((track, trigger)=>{ // track和trigger是两个函数let value = ''return {get () {track() // 如果有人访问name,就执行track()return value},set (val) {value = valtrigger() // 如果有人修改name,就执行trigger()}}})// 仅供在开发环境下,用于ref变量的调试onRenderTracked((ev)=>{console.log('name被跟踪了', ev)})onRenderTriggered((ev)=>{console.log('name被修改了', ev)})

5、toRef()

(1)作用:把一个reactive对象中的某个属性变成ref变量
(2)语法:const x = toRef(reactive(obj), 'key')

<script setup>import { reactive, toRef } from 'vue'const user = reactive({name: '张三', age: 10})console.log('---user', user)const name = toRef(user, 'name')console.log('---name', name.value) // name是ref变量</script>

6、toRefs()

(1)作用:把一个reactive响应式对象变成ref变量
(2)语法:const obj1 = toRefs(reactive(obj))
(3)应用:在子组件中接收父组件传递过来的props时,使用toRefs把它变成响应式的
例如:const {a, b} = toRefs(props)

<script setup>import { isRef, reactive, toRef, toRefs } from 'vue'const user = reactive({name: '张三', age: 10})console.log('---user', user)// const name = toRef(user, 'name')// console.log('---name', name.value) // name是ref变量const {name, age} = toRefs(user)console.log('---1', isRef(name))console.log('---2', isRef(age))</script>

7、shallowRef()

(1)作用:对复杂层级的对象,只将其第一层变成ref响应(性能优化)
用shallowRef包裹的对象,只有第一层变化才更新,更改后面的层不更新,第一层是.value
(2)语法:const x = shallowRef({a:{b:{c:1}}, d:2}),如此a、b、c、d变化都不会自动更新,需要借助triggerRef来强制更新
(3)shallowRef只劫持第一层

<script setup>import { isRef, reactive, toRef, toRefs, shallowRef, ref } from 'vue'// ref包裹对象const info1 = ref({a: {b: {c: 3}}})console.log('---3', info1.value.a.b.c) // 要访问c,需要写的很长const info2 = shallowRef({a: {b: {c: 3}}})console.log('---4', info2) // 只有info2.value = xxx 才会更新</script>

8、triggerRef()

(1)作用:强制更新一个shallowRef对象的渲染
(2)语法:triggerRef(shallowRef对象),只能接收一个shallowRef的变量,强制更新这个变量

9、reactive()

(1)作用:定义响应式变量,一般用于定义引用数据类型,如果是基本数据类型,建议使用ref来定义
(2)语法:const info = reactive([])
(3)如果定义对象类型、数组类型声明式变量,用reactive定义

http://www.dtcms.com/a/455418.html

相关文章:

  • 单页淘宝客网站2014年行吗一二三四视频社区5在线高清
  • 网站主页的要素郑州专业公司网站制作公司
  • 网站开发的平台企业网页设计模板图片
  • 多个网站优化怎么做恩施网站建设公司
  • 分类信息网站织梦模板用windows搭建手机网站
  • 安徽网站建设推广个人能接广告联盟吗
  • 汽车最专业的网站建设哪有网站给光头强做面
  • 思明区建设局官网站百度网址大全网址导航
  • 制作logo的网站静态网页制作总结
  • 重庆网站建设外包哪家好电商法规定企业网站必须做3年
  • 佛山北京网站建设公司wordpress使用QQ头像
  • 青岛君哲网站建设公司怎么样网络推广方式有哪几种
  • 做油漆的网站内蒙古呼和浩特市网络公司
  • 免费建站个人网站软文广告经典案例100字
  • 铁岭做网站公司信息做暧网站
  • 58网站建设58xiamen公司网站重新备案
  • 网站安全防护模板网官网
  • 河北wap网站建设中国建设项目招标网站
  • 深圳企业建站模板项目网络由箭线和节点构成
  • 做化妆品网站怎么注册一个电商平台
  • 中国城乡建中国城乡建设部网站wordpress初音主题
  • 分类目录网站做谷歌联盟南博会官方网站建设投入
  • 自适应网站好建们上海招标网站
  • 商务网站模块设计时前台基础设施建设不包括学互联网需要什么学历
  • 电子开发网站网站建设 图纸网
  • 现在的网站用什么程序做网站空间域名能不能自己续费
  • 网站内页检测线上教学网站怎么建设
  • 自媒体素材视频网站p2p的网站建设
  • 室内设计素材网站大全如何注册或购买一个域名使用
  • 2014苏州建设银行招聘网站答题网站怎么做