vue3怎么写类似vue2中混入的代码?-灵析社区

抠香糖

watch(() => store.isTranslate, (val) => { console.log(val) // queryData() }) 背景: 当isTranslate的值改变之后,调用页面的queryData方法,但是这段代码我要在多个vue页面中用,vue2写一个mixin.js直接mixin注入到当前页面就可以,vue3有啥办法

阅读量:14

点赞量:0

问AI
写成钩子函数呀,然后要用到地方引入即可: useTranslateWatch.js: import { ref, watch } from 'vue'; export default function useTranslateWatch(isTranslateRef, queryData) { // 假设isTranslateRef是从store中导出的ref或reactive对象属性 watch(isTranslateRef, (val) => { console.log(val); // 当isTranslate的值改变时调用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);