18.Composition API(四)高级语法补充

本文介绍了Vue3中的高级语法特性,包括自定义指令的使用,局部与全局指令的定义,展示了如何实现元素挂载后自动获取焦点。接着详细讲解了指令的生命周期,通过时间戳格式化案例来阐述。然后,探讨了Teleport的原理,它允许将组件内容移动到Vue应用之外的其他位置。此外,还解析了Vue插件的编写方式和常见用途,如添加全局方法、资源或实现响应式系统。最后,提到了Vue3源码中的核心系统:Compiler、Runtime和Reactivity。

1.自定义指令

之前我们学习了各种指令:v-model、v-for、v-show等,除了这些指令外,Vue允许我们自定义指令。

什么时候使用自定义指令?
需要对DOM元素进行底层操作,这个时候就会用到自定义指令

注意:在Vue中,代码的复用和抽象主要还是通过组件。

自定义指令分为两种:
自定义局部指令:组件中通过directives选项,只能在当前组件中使用。
自定义全局指令:app的directive方法,可以在任意组件中使用。

案例:某个元素挂载完成后自动获取焦点。
(1)默认实现,不使用自定义指令.

<template>
	<div>
		<input type="text" ref="input">
	</div>
</template>

<script>
	import {
		ref,
		onMounted
	} from "vue";
	export default {
		setup() {
			const input = ref(null)
			onMounted(() => {
				input.value.focus();
			})
			return {
				input
			}
		}
	}
</script>

(2)定义局部指令

<input type="text" v-focus>
export default {
		// 局部指令
		directives:{
			focus:{
				mounted(el){
					el.focus()
				}
			}
		}
	}

(3)定义全局指令
在main.js中定义

const app = createA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值