vue3函数交互代码封装和调用,vue2同理
vue3函数交互代码封装和调用,vue2同理
·
在项目当中,我们一般都会有很多的交互逻辑,都写在一个页面导致页面非常多,不好维护和整理,还很乱,下面教如何去封装一个方法和调用
这里来个简单的需求,点击页面,获取对应的坐标,这里用vue3来写,(vue2就是生命周期的使用不同)
思路:
1,首先创建一个js文件。将你写好的一个逻辑交互放进去,并应一个函数将其封装起来,最后得出来的值记得一定要return返还出来;
2,然后将这个封装好的函数export defur导出;
注意:vue3一定要在这个页面导入你需要的API组件,vue2导入你需要的数据
导入API组件
import { reactive, onMounted, onBeforeUnmount } from "vue";
将方法都封装到一个函数里
function savePoints() {
// 实现鼠标点击坐标数据
let point = reactive({
x: 0,
y: 0,
});
// 将坐标位置的封装起来在进行监听和删除,
// 执行的方法
function savePoint(event) {
console.log(event.pageX, event.pageY);
point.x = event.pageX;
point.y = event.pageY;
}
// 创建点击监听事件
onMounted(() => {
window.addEventListener("click", savePoint, true);
});
//优化删除
onBeforeUnmount(() => {
window.removeEventListener("click", savePoint);
});
// 交出返回值
return point
}
// 交出去
export default savePoints;
3,在自己需要的页面中先将该文件导入,然后再页面中直接调用,这里一定要注意拿个变量来接,因为你的封装函数是由返回值的;
4,vue3中直接再setup钩子函数中返回出去这个返回值即可调用,vue2可以直接调用这个承接的变量
template>
<div>
<h1>自定义Hook函数</h1>
<p>我的:{{ sum }}元</p>
<button @click="sum++">按钮</button>
<hr />
<h2>当前点击时的鼠标的坐标为:X轴:{{ point.x }};Y轴:{{ point.x }}</h2>
</div>
</template>
<script>
import { ref} from "vue";//vue3的方法,vue2不用写
import usePoint from '../Hooks/usehooks'
export default {
name: "Hook",
// 使用Hook进行封装,在组件中的Hooks里面的js封装
setup是vue3的方法,vue2写在自己的mothods里面
setup() {
const sum = ref(0);
//调用封装的函数,并将返回值赋值给一个变量接收
let point = usePoint();
return {return也是是vue3的方法
sum,
point,
};
},
};
</script>
<style>
</style>
更多推荐
已为社区贡献5条内容
所有评论(0)