Vue3的基础API使用

前端小白一枚,由于没有vue3的项目开发,自己学习的vue3还总是忘记,所以特地整理一篇自用api使用,所有资料都来自于vue3的官网。

以下的ts语言都在setup语法糖中书写

Ref

创造一个由Ref对象处理后的响应式数据

	import { ref } from 'vue'
	let count = ref(0)
	// 涉及到ref的数据修改,都需要通过数据.value来更改
	count.value = 4
	// 如果需要ts类型限制像下面这样书写
	const age = ref<number>(22)

通常只用于基本数据类型,引用数据类型还是用reactive比较方便
也可以用ref获取html

	import { ref } from 'vue'
	const divHTML = ref<HTMLElement>(null)
	// 同样,如果你想获取数据,也需要用.value
	let text = divHTML.value.innerText()
	//-----------------------------------
	<div ref="divHTML">需要获取的ref</div>

Reactive

创造一个由Proxy对象处理的响应式数据

	import { reactive } from 'vue'
	const person = reactive({
		age: 22,
		name: '张三'
	})
	// 修改数据可以直接修改
	person.age = 24
	// 如需用ts类型限制
	interface Star {
		age: number,
		name: string
	}
	const star: Star = reactive({
		age: 22,
		name: 'cxk'
	})

defineProps

父向子传参的一种方式,数据同样是Proxy对象处理
在setup语法糖中,不需要去引入这个方法,define开头的api都不需要引入

	// 传参方式和vue2一样
	<sonComponent :age="13"></sonComponent>
	// 子组件接受
	defineProps({
		age: {
			type: Number,
			required: true,
		},
		name: {
			type: String,
			default: '暂无'
		}
	})
	// 使用直接age,name就可以了,也可以使用变量来接受
	// 如需使用ts类型限制,就很方便
	interface Props {
		age:number,
		name?: string
	}
	const props = defineProps<Props>()

当使用基于类型的声明时,我们失去了为 props 声明默认值的能力。这可以通过 withDefaults 编译器宏解决

export interface Props {
  	msg?: string
  	labels?: string[]
}

const props = withDefaults(defineProps<Props>(), {
  msg: 'hello',
  labels: () => ['one', 'two']
})

每天补充点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值