Vue3中如何实现Vue2 Mixin的代码复用?
Vue2中,Mixin是常用的代码复用机制,将可复用代码封装成单独文件,再通过mixin
方法注入组件。Vue3则推荐使用Composition API实现更灵活、更可组合的代码复用。
要达到类似Vue2 Mixin的效果,Vue3中可以使用Composition函数。Composition函数是返回包含响应式状态和函数的对象的可重用函数。
以下示例演示如何用Composition函数实现类似Vue2 Mixin的功能:
import { ref, watch } from 'vue';
export default function useTranslateWatch(istranslateref, querydata) {
watch(istranslateref, (val) => {
console.log(val);
// istranslateref值变化时调用querydata函数
querydata();
});
}
使用方法:
import { ref } from 'vue';
import { useStore } from 'vuex'; // 假设使用Vuex
import useTranslateWatch from '@/composables/useTranslateWatch';
const store = useStore();
// 假设isTranslate是store中的state
const isTranslate = ref(store.state.isTranslate);
// queryData函数
function queryData() {
// ... 查询逻辑
}
// 使用自定义Composition函数
useTranslateWatch(isTranslate, queryData);
这样,isTranslate
值改变时,queryData
函数就会被调用。 通过Composition函数,可以将可复用代码封装,并在不同组件中灵活使用,达到与Vue2 Mixin类似的代码复用效果。