vue3中hooks的简单使用

一:hook意为钩子,其本质是一组可复用的函数。vue中的hook借鉴了React 16之后的一种新的函数式编程思维,在React中,Hooks提供了一系列以use开头的函数,允许开发者在函数式组件中完成生命周期、状态管理、逻辑复用等几乎全部组件开发工作。而在Vue 3中,Hooks结合了Vue的响应式系统,成为了一种强大的状态逻辑封装与复用机制。
二:简单实现如下:
如果不用hooks之前组件中的代码:

<template>
    <div>
        <p>{{count}}</p>
        <el-button @click="changeA">{{a}}</el-button>
        <p>{{b}}</p>
        <p >{{changeB}}</p>
    </div>
</template>
<script>
import { ref,computed} from 'vue'
export default {
    setup() {
	    const count = ref(0)
	    const a = ref(1)
	    const b = ref(2)
	    const changeA = ()=>{
	        a.value++
	    }
	    const changeB = computed(()=>{
	        return b.value*10
	    })
	    return{
	        count,a,b,changeA,changeB
	    }
    },
}
</script>

如果使用hooks的话:

1:新建js文件

import { ref,onMounted,computed} from 'vue'
export const numberData = ()=>{
    const count = ref(0)
    const a = ref(1)
    const b = ref(2)
    onMounted(()=>{
        console.log('onMounted')
    })
    const changeA = ()=>{
        a.value++
    }
    const changeB = computed(()=>{
        return b.value*10
    })
    return{
        count,a,b,changeA,changeB
    }
}

2:在组件中使用:

<template>
    <div>
        <p>{{count}}</p>
        <el-button @click="changeA">{{a}}</el-button>
        <p>{{b}}</p>
        <p >{{changeB}}</p>
    </div>
</template>
<script>
import {numberData} from '@/components/hooks/test.js'
export default {
    setup() {
        const {count,changeA,a,b,changeB} = numberData()
        return{
            count,a,b,changeA,changeB
        }
    },
}
</script>

效果展示:
在这里插入图片描述
没用hooks以前可以看出,如果多个页面同时使用,增加了代码冗余,使用hooks后,如果其他组件需要使用,我们只需要将其引入。这里只写了几段简单的代码,后期项目如果使用大量的共享数据和逻辑,尤其是多个组件共享的数据和逻辑时,通过将响应式变量进行封装,可以提高代码的可维护性和可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值