当前位置: 首页 > wzjs >正文

广州网站制作商整站优化网站

广州网站制作商,整站优化网站,如何用运行打开wordpress,云阳网站建设一、什么是副作用函数和响应式数据? 副作用函数: 可以产生副作用的函数,那么什么是副作用呢?举个栗子: let count 1function effect() {count }function fn() {if (count 1) {console.log(执行1)} else {console.l…

一、什么是副作用函数和响应式数据?

副作用函数: 可以产生副作用的函数,那么什么是副作用呢?举个栗子:

let count = 1function effect() {count++
}function fn() {if (count == 1) {console.log('执行1')} else {console.log('执行2')}
}
effect()
fn()

当执行effect函数时会修改全局变量count的值,count值的修改就是effect函数执行带来的副作用,由于count变量被effect、fn函数所共享,effect函数修改了count值后会对fn函数产生影响,即effect函数的执行对fn函数产生了副作用。

响应式数据: 当数据发生变化时会触发相关副作用函数自动执行,我们将这样的数据称为响应式数据。比如下面的例子,一开始obj.title的值为 首页,而后修改obj.title的值为详情页,当修改了obj.title的值之后若effect函数自动执行,则称obj为响应式数据。

const obj = { title: '首页' }
function effect() {document.body.innerText = obj.title
}
obj.title = '详情页'

二、响应式数据的简单实现

首先我们要清楚对象操作的基本语意:

  1. 读取” 操作又称之为 get
  2. 设置” 操作又称之为 set
    我们可以通过Proxy代理目标对象的读取设置操作,读取和设置操作的语意比较宽泛,在这里只介绍比较简单的getset,我们来看下面这个例子:
// 桶,用于存储代理对象和副作用函数之间的对应关系
const bucket = new Set()
// 用于存储临时的副作用函数
const activateEffect = nullconst data = {num: 1
}function effect(fn) {activateEffect = fnfn()
}
function track() {if (!activateEffect) {return}bucket.add(activateEffect)
}function trigger() {bucket.forEach(fn => fn())
}
const proxy = new Proxy(data, {get(target, key, receiver) {track()return Reflect.get(target, key, receiver)},set(target, key, value, receiver) {triggerreturn Reflect.set(target, key, value, receiver)}
})effect(() => console.log(proxy.num))
proxy.num++

上述例子中实现了一个简单的响应式功能,当读取proxy代理对象的属性时,代理对象中的get方法会收集副作用函数,当设置proxy对象的属性时set方法中的trigger函数会触发副作用函数的执行。但例子中的响应式系统还存在缺陷,作者还会不断完善。

http://www.dtcms.com/wzjs/178186.html

相关文章:

  • 空间网站seo综合检测
  • 网站开发项目中职责网络营销产品的首选产品
  • 网站建设预计费用接单平台app
  • 未注册网站任务放单平台
  • 上海网站开发哪家好官方百度下载安装
  • 成都那家做网站好网络营销产品
  • cnzz 网站域名怎么填社区营销
  • 珠海做网站哪家好个人在百度上发广告怎么发
  • 苏州企业网站建设方案浙江网站推广
  • 沈阳网站建设首选龙兴科技免费建站的网站有哪些
  • 在线教育做网站好还是app好网络营销公司业务范围
  • 美食网站开发开题报告chrome谷歌浏览器
  • 免费html5中文网站素材怎么可以在百度发布信息
  • 咸阳北京网站建设怎样创建网站
  • 做毕设网站多少钱360关键词排名百度
  • 手机端网站怎么做个人网站该怎么打广告
  • 滁州网站建设在百度上怎么发布信息
  • 查公司法人信息怎么查百度网站怎样优化排名
  • 克拉玛依建设局网站6微博指数查询入口
  • 门户网站建设公司流程惠州seo整站优化
  • 网站平台做推广seo网站推广的主要目的
  • html5网站强制横屏站长工具综合查询ip
  • 网站开发前端要学什么软件免费关键词排名优化软件
  • 贸易做网站seo搜索引擎优化营销案例
  • 怎么描述网站主页做的好今日头条新闻大事件
  • 建筑人才网站哪个比较好百度的合作网站有哪些
  • 多语言网站制作竞价推广公司
  • 网站空间购买哪个好外贸怎么建立自己的网站
  • 怎么为一个网站做外链站长工具四叶草
  • 百度收录网站的图片潜江seo