自用笔记
在vue2中,mixins可以用来混入一些复用的函数,变量等等,在vue3版本中,特别是组合式的写法之中可以用钩子的方式来代替这一功能。
写一个复用的控制盒子展示或者隐藏的钩子useOpen
import {ref} from "vue"
export function useOpen(){// 创建控制变量const isOpen=ref<boolean>(true)let TriggleBox=()=>{isOpen.value=!isOpen.value}return {isOpen,TriggleBox}
}
钩子中创建了一个ref变量,并创建了一个改变该变量的方法,然后return了出来
下面是在组件之中的使用
<template><div :class="['box',isOpen?'show':'hide']"></div><button @click="TriggleBox">open box</button>
</template>
<script setup lang="ts">
import { useOpen } from "@utils/useOpen";
let {isOpen,TriggleBox}=useOpen()</script>
<style lang="scss" scoped>
.box{width:100px;height:100px;background-color: palevioletred;
}
.show{display:block;
}
.hide{display: none;
}
</style>
ok