vue3知识点:自定义hook函数

news/2024/7/10 3:05:53 标签: 前端, 开发语言, vue3, 自定义hook函数, vue

在这里插入图片描述

文章目录

  • 二、常用 Composition API
  • 本人其他相关文章链接

二、常用 Composition API

问题:啥叫“组合式API”?

答案:请看官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html

9.自定义hook函数

在这里插入图片描述
注意点1:
创建hooks文件夹,把每个模块需要封装的代码封装到一个js文件中,这样的好处是组件中看着很清爽,只管引入和调用即可,具体hook如何实现那是别人负责的,当前组件只管引入使用即可。

使用步骤:
1)封装每个模块的hook函数的js文件
2)组件中import引入hook函数
3)return中进行返回设置
4)页面模板中直接引用即可

案例:页面打印鼠标滑动坐标

项目代码

项目目录

在这里插入图片描述

main.js

//引入的不再是Vue构造函数了,引入的是一个名为createApp的工厂函数
import { createApp } from 'vue'
import App from './App.vue'

//创建应用实例对象——app(类似于之前Vue2中的vm,但app比vm更“轻”)
const app = createApp(App)

//挂载
app.mount('#app')

App.vue

<template>
	<button @click="isShowDemo = !isShowDemo">切换隐藏/显示</button>
	<Demo v-if="isShowDemo"/>
</template>

<script>
	import {ref} from 'vue'
	import Demo from './components/Demo'
	export default {
		name: 'App',
		components:{Demo},
		setup() {
			let isShowDemo = ref(true)
			return {isShowDemo}
		}
	}
</script>

usePoint.js

import {reactive,onMounted,onBeforeUnmount} from 'vue'
export default function (){
	//实现鼠标“打点”相关的数据
	let point = reactive({
		x:0,
		y:0
	})

	//实现鼠标“打点”相关的方法
	function savePoint(event){
		point.x = event.pageX
		point.y = event.pageY
		console.log(event.pageX,event.pageY)
	}

	//实现鼠标“打点”相关的生命周期钩子
	onMounted(()=>{
		window.addEventListener('click',savePoint)
	})

	onBeforeUnmount(()=>{
		window.removeEventListener('click',savePoint)
	})

	return point
}

Demo.vue

<template>
	<h2>当前求和为:{{sum}}</h2>
	<button @click="sum++">点我+1</button>
	<hr>
	<h2>当前点击时鼠标的坐标为:x:{{point.x}},y:{{point.y}}</h2>
</template>

<script>
	import {ref} from 'vue'
	import usePoint from '../hooks/usePoint'
	export default {
		name: 'Demo',
		setup(){
			//数据
			let sum = ref(0)
			let point = usePoint()
			

			//返回一个对象(常用)
			return {sum,point}
		}
	}
</script>

结果展示

在这里插入图片描述

本人其他相关文章链接

1.《vue3>vue3第二章》常用组合式 Composition API,包括setup、ref函数、reactive函数、vue3>vue3.0中的响应式原理、计算属性与监听属性
2.vue3>vue3知识点:setup
3.vue3>vue3知识点:ref函数
4.vue3>vue3知识点:reactive函数
5.vue3>vue3知识点:Vue3.0中的响应式原理和 vue2.x的响应式
6.vue3>vue3知识点:reactive对比ref
7.vue3>vue3知识点:计算属性与监视属性
8.vue3>vue3知识点:生命周期
9.vue3>vue3知识点:自定义hook函数
10.vue3>vue3知识点:toRef函数和toRefs函数


http://www.niftyadmin.cn/n/898089.html

相关文章

vue3知识点:toRef函数和toRefs函数

文章目录二、常用 Composition API10.toRef函数案例&#xff1a;区分toRef与toRefs项目代码本人其他相关文章链接二、常用 Composition API 问题&#xff1a;啥叫“组合式API”&#xff1f; 答案&#xff1a;请看官方文档: https://v3.cn.vuejs.org/guide/composition-api-int…

《vue3第三章》其它 Composition API(不常用,了解即可),包括shallowReactive 与 shallowRef、readonly 与 shallowReadonly等等

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)1.shallowReactive 与 shallowRef测试案例完整代码2.readonly 与 shallowReadonly测试案例完整代码3.toRaw 与 markRaw测试案例完整代码4.customRef测试案例完整代码5.provide 与 inject测试案例完整代码6.响应式…

vue3知识点:shallowReactive 与 shallowRef

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)1.shallowReactive 与 shallowRef测试案例完整代码本人其他相关文章链接三、其它 Composition API(不常用&#xff0c;了解即可) 1.shallowReactive 与 shallowRef 注意点1&#xff1a; 问题&#xff1a;为啥sha…

vue3知识点:readonly 与 shallowReadonly

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)2.readonly 与 shallowReadonly测试案例完整代码本人其他相关文章链接三、其它 Composition API(不常用&#xff0c;了解即可) 2.readonly 与 shallowReadonly 注意点1&#xff1a; 如果使用readonly包裹的perso…

vue3知识点:toRaw 与 markRaw

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)3.toRaw 与 markRaw测试案例完整代码本人其他相关文章链接三、其它 Composition API(不常用&#xff0c;了解即可) 3.toRaw 与 markRaw 注意点1&#xff1a; 之前上面讲解的函数都是把普通数据 -> 响应式数据…

vue3知识点:customRef

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)4.customRef测试案例完整代码本人其他相关文章链接三、其它 Composition API(不常用&#xff0c;了解即可) 4.customRef 作用&#xff1a;创建一个自定义的 ref&#xff0c;并对其依赖项跟踪和更新触发进行显式控…

vue3知识点:provide 与 inject

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)5.provide 与 inject测试案例完整代码本人其他相关文章链接三、其它 Composition API(不常用&#xff0c;了解即可) 5.provide 与 inject 作用&#xff1a;实现祖与后代组件间通信套路&#xff1a;父组件有一个 …

vue3知识点:响应式数据的判断

文章目录三、其它 Composition API(不常用&#xff0c;了解即可)6.响应式数据的判断测试案例完整代码本人其他相关文章链接三、其它 Composition API(不常用&#xff0c;了解即可) 6.响应式数据的判断 测试案例 完整代码 项目目录 main.js //引入的不再是Vue构造函数了&#…