js
南麟剑首
前端开发
展开
-
订阅发布和观察者模式
发布订阅模式把多个方法暂存起来,最后一次触发执行作用: 解偶使用场景: 如,多个类或者函数内,可以分散订阅某个操作,最后统一发布。分散的好处就是不做代码侵入,各自为政,实现代码低耦合。几乎所有的库,都会有基于该设计模式的功能案例事件调度中心// 事件中心,做事件调度 const fs = require("fs"); let events = { _events: [], on(fn) { this._events.push(fn); }, e原创 2021-09-15 20:31:53 · 145 阅读 · 0 评论 -
js函数柯里化
函数柯里化: 把多个参数的传入转成n个函数,可以暂存变量柯里化,要求参数一个个传,通常参数长度确定(定参)如果多个参数严格意义讲,就不算柯里化,成为偏函数不定参可以吗?可以…成本太高,得不偿失典型柯里化函数的体现function fn(a) { return function a(b) { return function b(c) { return function c() { // ... }; }; };}let.原创 2021-09-15 18:21:24 · 173 阅读 · 0 评论 -
js高阶函数
高阶函数?两种应用方式可称之为高阶函数函数内部返回一个函数,外层函数可以叫做高阶函数function A() { return function () {}; }函数的参数是一个函数,也是高阶函数 function A(B) { B(); }举一个应用场景 (AOP)AOP:即面向切面编程,可以理解为不动原有业务逻辑,额外增量扩展功能// DEMOfunction core(...args) { // 这是原有业务,我们希望不动这个原有业务,.原创 2021-09-15 18:10:41 · 276 阅读 · 0 评论 -
eventbus-免手动解绑方案
为什么会写这个包?跨层级组件传值,平级组件传值方案众多,五花八门,维护起来很费劲(如eventbus,inject-provider等等)vuex?redux?注意了,这两个技术产生的应用场景是全局数据管理,而不是用来处理大量业务数据监听,如果坚持用,那么最后随着项目庞大,store也会庞大,维护成本不言而喻。嗯~modules可以分模块维护,但是,依旧不建议,做技术的严谨性还是要有的eventbus不是可以解决以上问题嘛?没错的,但是会有一个问题,很多同学协作开发过程代码不规范,那就是只监听,不解原创 2021-09-06 17:57:36 · 335 阅读 · 0 评论 -
判断windows系统类型和IE浏览器版本
判断系统类型,IE版本 function detectOS() { var sUserAgent = navigator.userAgent var isWin = navigator.platform == 'Win32' || navigator.platform == 'Windows' var isMac = navigator.platform == 'Mac68K' || naviga原创 2021-07-16 19:09:43 · 406 阅读 · 0 评论 -
网站导航部分-鼠标跟随滑动效果
htm部分<div class="header"> <div class="logo" id="toIndex"> <img src="../imgs/pc/common/header/logo.png" alt="" /> </div> <ul class="menu" id="menu"> <li id="menu_know" class="menu-item">了解OKR</li> .原创 2021-07-06 15:57:40 · 322 阅读 · 0 评论 -
30分钟包你入门D3
D32d 数据展示渲染库,本质通过 js 操作 svg,css,在数据可视化自定义图表领域大放异彩特征可链式调用语法神似 jquery学习方式也类似 jquery使用方式vue 或者 react 等框架引用cnpm i d3 --serve-dev按需加载import {} from 'd3'接下来就想用 jquery 一样用 api不过是操作 dom以 vue 为例;<div ref="base">index</div>im原创 2021-02-19 20:25:12 · 286 阅读 · 0 评论 -
js常用函数封装和vue开发小技巧(持续添加)
移动端适配方案viewport插件选择 postcss-px-to-viewport配置 //安装插件 npm i postcss-px-to-viewport -D //根目录新建 .postcssrc.js // 文件内容 const path = require('path')module.exports = ({ file }) => { // 记住这里:设计搞多大就给多大,然后剩下的就按照设计稿实际宽高,写就好了 let designWidth =原创 2021-01-12 14:26:16 · 465 阅读 · 0 评论 -
part02~开发通用前端UI框架之权限设计(路由,组件,指令)
设计左侧菜单和路由的关系注意了:左侧菜单往往跟当前 登陆者的权限有关系,这一类数据可能是后端返回的,可能是多级的关系,那么就要用到递归的方式,所以我们用 Antd 中‘单文件递归菜单’layouts->SiderMenu.vue递归当前 Antd 版本-1.5.0-rc.5 版本你会发现你复制过来的代码有点乱,还报错,还可能看不大懂对吗?因为这个代码中包含了左侧菜单的样式,还有一...原创 2020-03-31 02:30:33 · 561 阅读 · 0 评论 -
part01~开发通用前端UI框架
通用企业级前端 UI 框架项目介绍此项目一套开箱即用的中后台前端框架,这个项目就从 0 到 1 实现该项目优点:功能齐全从零搭建前端架构,提高你的单兵作战的能力技术点应用全面,综合查缺补漏关于权限管理是个大亮点哟template 和 jsx 的区别templateHTML 扩展的语法数据使用 Mustache(双括号)优点:学习成本低,大量指令,组件作用域...原创 2020-03-25 10:02:52 · 2809 阅读 · 0 评论 -
call() bind() apply() 一看就懂
// 安啦,看似懵懂,其实简单的一比// 废话少说直接扯代码// 举个栗子var name = '哪吒', age = 13;var obj = { name: '松岛老师', objAge: this.age, fun: function () { console.log('name:', this.name + ',Age:' + this.age); }}...原创 2019-09-04 18:13:44 · 246 阅读 · 0 评论