首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

基于发布-订阅的原生 JS 插件封装

用原生 JS 封装一个动画插件。效果如下: ? 这个飞驰的小球看起来是不是特有灵性呢?没错,它就是用原生JS实现的。 接下来,就让我们深入细节,体会其中的奥秘。...一、需求分析 封装一个插件,将小球的 DOM 对象作为参数传入,使得小球在鼠标按下和放开后能够运动,在水平方向做匀减速直线运动,初速度为鼠标移开瞬间的速度,在竖直方向的运动类似于自由落体运动。...curT'].forEach(item => { this[item] = null; }); //为按下鼠标绑定事件,事件函数一定要绑定this,在封装过程中...在这里我并不是简单讲讲效果的实现、贴贴代码就过去了,而是带你体验了封装插件的整个过程。有了发布-订阅的场景,理解这个设计思想就更加容易了。...回过头看,比如 DOM2 的事件池机制,vue 的生命周期钩子等等,你就会明白它们为什么要这么设计,原理上和这次封装没有区别,这样一想,很多东西就更加清楚了。

3.1K20

Node.js+Mysql模块封装

前言 最近在写毕设,采用的是学弟+自己的技术栈,运用Vue3+ElementPlus搞前端,Node.js express做后端,毕竟,java那东西确实不在我技术栈里。...于是乎,我抱着能CV就不要自己敲的心态,前去了某C站,C回了一个封装好了看上去存在可用性的基础sql模块,结果,踩了大坑。...正文 项目目录 只是单独把数据库模块拎出来了 ├─index.js ├─db | ├─db.js //封装的操作函数 | ├─dbconfig.js //数据库配置 | └sql.js //sql语句...sql.js 主要是存放一些操作表的sql语句,这里只是放了一个表,多个表也可以~ //单纯的栗子 let user = { insert: "INSERT INTO user(id, name.../dbconfig.js"); //注意改成自己项目中的路径 const sql = require(".

88840

JS实用技巧篇】03-封装思想

​ ​ JavaScript专栏:js实用技巧篇 该专栏博主会持续更新,目的是给大家分享一些常用实用技巧,同时巩固自己的基础,共同进步✨✨✨ 欢迎大家在评论区留言交流技术以及学习方法、心得方面的问题...getRandom(min, max) { return Math.floor(Math.random() * (max - min ))+min; } **代码分析:**上面随机数获取函数的封装有一定局限性...根据元素类样式获取 dom 得到 dom 的伪数组 H5以后获取dom方式 API 含义 备注 document.querySelector()dom.querySelector() 根据 CSS 选择器获取...dom 得到第一个匹配的 dom document.querySelectorAll()dom.querySelectorAll() 根据 CSS 选择器获取 dom 得到所有匹配的 dom伪数组...另外,各位有没有发现.toString().padStart(2, "0")这一部分重复了很多次,那我们就可以对其封装,如果你早已发现,那么恭喜你封装思想已经初步成形 总结 看完本篇可能对封装思想有了一定了解

2.3K20
领券