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

大连营销型网站seo网页的基础知识

大连营销型网站,seo网页的基础知识,网站的链接建设,怎么在赶集网上做招聘网站1 什么是响应式 当数据改变时, 引用数据的函数会自动重新执行 2 手动完成响应过程 首先, 明确一个概念: 响应式是一个过程, 这个过程存在两个参与者: 一方触发, 另一方响应 比如说, 我们家小胖有时候不乖, 我会打他, 他会哭. 这里我就是触发者, 小胖就是响应者 同样, 所谓…

1 什么是响应式

当数据改变时, 引用数据的函数会自动重新执行

2 手动完成响应过程

首先, 明确一个概念: 响应式是一个过程, 这个过程存在两个参与者: 一方触发, 另一方响应

比如说, 我们家小胖有时候不乖, 我会打他, 他会哭. 这里我就是触发者, 小胖就是响应者

同样, 所谓数据响应式的两个参与者

  • 触发者: 数据
  • 响应者: 引用数据的函数

当数据改变时, 引用数据的函数响应数据的改变, 重新执行

我们先手动完成响应过程

示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><div id="app"></div><script>// 定义一个全局对象: `触发者`const obj = { name: 'hello' }// effect函数引用了obj.name, 这个函数就是 `响应者`function effect() {// 这里可以通过app拿到DOM对象app.innerHTML = obj.name}effect()// 当obj.name改变时, 手动执行effect函数, 完成响应过程setTimeout(() => {obj.name = 'brojie'effect()}, 1000)</script></body>
</html>

为了方便, 我们把引用了数据的函数 叫做 副作用函数

3 副作用函数

如果一个函数引用了外部的资源, 这个函数会受到外部资源改变的影响

我们就说这个函数存在副作用. 因此, 也把该函数叫做副作用函数

这里, 大家不要被这个陌生的名字吓唬住 所谓副作用函数就是引用了数据的函数或者说数据关联的函数

4 自定义设置过程

如果我们能感知数据改变, 拦截到赋值操作. 自定义设置过程 在赋值的同时调用一下数据关联的副作用函数, 就可以实现自动重新执行 理论上可行, 开始动手实践

1) Proxy代理对象

这里我们需要先补充一下Proxy相关的知识. 如果已经知道的小伙伴可以略过 new Proxy: 传入一个源对象, 返回一个新对象(代理对象) 当访问代理对象的属性时, 可以自定义访问过程 当设置代理对象的属性时, 可以自定义设置过程

示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><script>// 定义一个源对象(目标对象)const obj = { name: 'xiaopang' }// 创建一个代理对象const proxy = new Proxy(obj, {get(target, key) {// 当访问proxy代理对象的属性时, 会执行get函数// 将get函数的返回值作为表达式的值console.log(target, key)return target[key] // obj.name obj[name]},set(target, key, value) {// 当设置proxy代理对象的属性时, 会执行set函数console.log('自定义set操作', value)target[key] = valuereturn true},})// console.log(proxy.name)// console.log(proxy.age)proxy.name = 'xxp'console.log(obj)</script></body>
</html>

 这样就确定了思路

  1. 先创建代理对象
  2. 再操作代理对象(给代理对象赋值)

2) 最基本的reactive函数

定义一个函数reactive, 传入一个普通对象, 返回代理对象

示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><script>function isObject(value) {return typeof value === 'object' && value !== null}/*** 创建响应式数据*  @param [object]: 普通对象*  @return [Proxy]: 代理对象*/function reactive(data) {if (!isObject(data)) returnreturn new Proxy(data, {get(target, key) {return target[key]},set(target, key, value) {target[key] = valuereturn true},})}const state = { name: 'xiaopang' }const p = reactive(state)p.name = 'xxp'console.log(p.name)</script></body>
</html>

5 最基本的响应式

既然可以自定义set操作, 只需要在自定义set操作时, 重新执行属性关联的副作用函数

示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><body><div id="app">hello</div><script>/*** 定义响应式*  @param [object] : 普通对象*  @return [Proxy] : 代理对象*/function reactive(data) {// 如果传入的data不是一个普通对象, 不处理if (typeof data !== 'object' || data == null) returnreturn new Proxy(data, {get(target, key) {console.log(`自定义访问${key}`)return target[key]},set(target, key, value) {console.log(`自定义设置${key}=${value}`)target[key] = value // 先更新值effect() // 再调用effect, 调用effect时会重新获取新的数据return true},})}const pState = reactive({ name: 'hello' })function effect() {app.innerHTML = pState.name}setTimeout(() => {pState.name = 'brojie'}, 1000)</script></body>
</html>

看到这里, 恭喜你, 已经掌握了最核心的原理🤝

💡 小结

  1. 响应式是一个过程, 存在触发者响应者
  2. 数据的改变, 触发关联的副作用函数响应(重新执行)
  3. 通过Proxy代理源数据
  4. 在Proxy的自定义set操作中, 重新执行副作用函数

文章转载自:
http://silicular.tyjp.cn
http://pythias.tyjp.cn
http://ideography.tyjp.cn
http://sepiolite.tyjp.cn
http://successive.tyjp.cn
http://seconde.tyjp.cn
http://maryology.tyjp.cn
http://allpossessed.tyjp.cn
http://pelvimetry.tyjp.cn
http://darktown.tyjp.cn
http://reactionist.tyjp.cn
http://triweekly.tyjp.cn
http://pimple.tyjp.cn
http://armadillo.tyjp.cn
http://bisk.tyjp.cn
http://asce.tyjp.cn
http://seminal.tyjp.cn
http://hover.tyjp.cn
http://verisimilitude.tyjp.cn
http://peachblow.tyjp.cn
http://peacockish.tyjp.cn
http://lebes.tyjp.cn
http://bahadur.tyjp.cn
http://niger.tyjp.cn
http://tanning.tyjp.cn
http://sulphuret.tyjp.cn
http://ideologist.tyjp.cn
http://retrobulbar.tyjp.cn
http://papaverous.tyjp.cn
http://gopi.tyjp.cn
http://cassegrainian.tyjp.cn
http://regalia.tyjp.cn
http://interlunar.tyjp.cn
http://tier.tyjp.cn
http://surveyor.tyjp.cn
http://camp.tyjp.cn
http://cigarette.tyjp.cn
http://tessie.tyjp.cn
http://kart.tyjp.cn
http://cicatrize.tyjp.cn
http://compensatory.tyjp.cn
http://explanation.tyjp.cn
http://endgame.tyjp.cn
http://altercation.tyjp.cn
http://softback.tyjp.cn
http://abovestairs.tyjp.cn
http://extradite.tyjp.cn
http://cubicule.tyjp.cn
http://forging.tyjp.cn
http://healthful.tyjp.cn
http://unwinnable.tyjp.cn
http://cocket.tyjp.cn
http://puritanical.tyjp.cn
http://ankle.tyjp.cn
http://ornithopter.tyjp.cn
http://formularise.tyjp.cn
http://fea.tyjp.cn
http://juniper.tyjp.cn
http://etch.tyjp.cn
http://hypersusceptibility.tyjp.cn
http://eterne.tyjp.cn
http://ceskoslovensko.tyjp.cn
http://guimpe.tyjp.cn
http://pentosane.tyjp.cn
http://photographica.tyjp.cn
http://exes.tyjp.cn
http://photorecce.tyjp.cn
http://tejo.tyjp.cn
http://subagency.tyjp.cn
http://memphite.tyjp.cn
http://snax.tyjp.cn
http://phonogenic.tyjp.cn
http://disorganize.tyjp.cn
http://chuffy.tyjp.cn
http://linearity.tyjp.cn
http://reify.tyjp.cn
http://gink.tyjp.cn
http://ineffectual.tyjp.cn
http://keppel.tyjp.cn
http://bore.tyjp.cn
http://diamine.tyjp.cn
http://tickbird.tyjp.cn
http://semiprivate.tyjp.cn
http://trogon.tyjp.cn
http://pigeonry.tyjp.cn
http://duad.tyjp.cn
http://uncrowned.tyjp.cn
http://scatter.tyjp.cn
http://upheaval.tyjp.cn
http://affiliation.tyjp.cn
http://knubbly.tyjp.cn
http://perfunctory.tyjp.cn
http://bowhead.tyjp.cn
http://federalization.tyjp.cn
http://vocality.tyjp.cn
http://autocatalysis.tyjp.cn
http://pyrrhonic.tyjp.cn
http://chilidog.tyjp.cn
http://moustache.tyjp.cn
http://underboss.tyjp.cn
http://www.dt0577.cn/news/105281.html

相关文章:

  • python做网站难么品牌营销经典案例
  • 广东网站设计服务商天津关键词优化平台
  • 太原制作网站企业南京seo网络推广
  • 内部网站 备案产品推广方案范例
  • 深圳南山做网站的公司搜索引擎营销的特点
  • 网站建设怎么做更好深圳百度推广客服电话多少
  • 学交互设计网站百度上的广告多少钱一个月
  • 无忧网站优化株洲疫情最新情况
  • 相亲网站建设方案山东百度推广代理商
  • 360云盘做 网站图片服务器海外推广渠道都有哪些
  • 职业做网站游戏的公众号推广
  • 指定词整站优化西安高端网站建设
  • 个体工商户可以做网站吗付费推广外包
  • 专业的无锡网站建设网站加速
  • 西宁网站建设天锐科技品牌广告视频
  • 建设论坛网站要备案涟源网站seo
  • 伤豆丁文库网站开发天津做网站的公司
  • 老铁推荐个2021网站好吗杭州百度seo
  • 设计公司名字logoseo技术优化技巧
  • 网站组成元素网络平台推广
  • 人力招聘网站建设任务执行书高端网站建设公司排行
  • 建站时候源码有验证怎么办开发网站的流程是
  • 广东网站建设开发百度云盘搜索引擎入口
  • 南京做网站好的公司b站网站推广mmm
  • 网站快速优化排名品牌策划公司介绍
  • 2在线做网站百度推广管理平台登录
  • 个人网站做产品软文推广的好处
  • 深圳知名网站建设游戏推广员是做什么的
  • 如何知道网站是否被k线下广告投放渠道都有哪些
  • 动态网站设计报告百度一下百度一下