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

网站建设规划书 简版网络seo排名

网站建设规划书 简版,网络seo排名,bsci网站的cap是如何做,南宁网站建设公司怎么赚钱设计模式 代码整体的结构会更加清楚,管理起来会更加方便,更好地维护 设计模式是一种思想 发布订阅 模块化开发 导入很多模块 容器即数组存储未来要执行的方法,同addEventListener 数组塌陷问题* 由于删除了元素,导致从删除元素的位…

设计模式

代码整体的结构会更加清楚,管理起来会更加方便,更好地维护

设计模式是一种思想

发布订阅

模块化开发 导入很多模块

容器即数组存储未来要执行的方法,同addEventListener

数组塌陷问题*

由于删除了元素,导致从删除元素的位置开始之后的每一项索引向前递进的问题。

如果还像开始一样索引递增+1,那么就会产生某些元素被跳过的现象

(function (){
      let listeners={}
      function checkName(name){
          if(typeof name !== 'string') throw new Error('name must be a string!')
      }
      function checkFunc(func){
          if(typeof func !== 'function') throw new Error('callback must be a function!')
      }
      const on=function (name,func){
          checkName(name)
          checkFunc(func)
          if(!listeners.hasOwnProperty(name)) listeners[name]=[]
          let pond=listeners[name]
          if(!pond.includes(func)){
              pond.push(func)
          }      }
      const off=function (name,func){
          checkName(name)
          checkFunc(func)
          if(!listeners.hasOwnProperty(name)) return;
          let pond=listeners[name]
          let index=pond.indexOf(func)
          if(index>-1){
              pond[index]=null;
          }
      }
      const emit=function (name,...args){
          checkName(name)
          let pond=listeners[name]
          if(!pond) return;
          for(let i=0;i
              let fn=pond[i]
              if(typeof fn !== 'function'){
                  pond.splice(i,1)
                  i--;
                  continue;
              }
              // fn执行
              fn(...args)          }      }
      window.$subscribe={
          on,
          off,
          emit
      }  })()
  const fn1=function (){
      console.log('fn1');
  }
  const fn2=function (){
      console.log('fn2');
      $subscribe.off('success',fn1)
      $subscribe.off('success',fn2)
  }
  const fn3=function (){
      console.log('fn3');
  }
  const fn4=function (){
      console.log('fn4');
  }
  $subscribe.on('success',fn1)
  $subscribe.on('success',fn2)
  $subscribe.on('success',fn3)
  $subscribe.on('success',fn4)
  $subscribe.emit('success')

OOP设计模式

函数式编程不能中止中间不能结束,也不能控制循环的步骤

发布订阅设计思想:

vue中父子组件$emit/$on通信,react中redux中公共状态改变通知各个组件执行,好几个地方加入一些方法,某个阶段把它们统一执行,而加入的方法并没有在同一个js中,这个时候就使用发布订阅。

观察者模式

两个对象:观察者和目标

目标:订阅一些方法和通知方法执行

观察者update,每个观察者执行update

把之前函数=>观察者,往事件池中加的是观察者,每个观察者都有一个结构

区别:

加入的是观察者,而不是一个函数。而通知也是通知observer.update执行。

核心思路:

都有个容器,把要呼叫的东西放进去到达时间以后通知执行

先放个容器,把所有东西订阅进去或移除订阅,以后再通知执行fire/notify

发布订阅是加方法,观察者是加观察者实例。发布订阅是直接通知方法,而观察者是通知观察者实例执行update。

http://www.hkea.cn/news/365264/

相关文章:

  • 南宁网站建设制作后台网站关键词优化价格
  • 微信小程序商城制作公司宁波seo推广服务
  • 响应式购物网站公司seo是什么意思
  • 360未经证实的网站如何做电商运营方案
  • 网站建设类公司排名营销方案范文100例
  • 郑州网站设计 郑州网站开发网络优化有前途吗
  • 黑河做网站首页关键词排名优化
  • 网站二级域名怎么解析公司网络搭建
  • wordpress做网店win10优化大师是官方的吗
  • 弄个做网站公司产品宣传
  • 商品房建设信息网站googleplay商店
  • 菏泽 网站建设优化工具箱
  • 网站建设找哪家公司百度搜索热度
  • 网页设计论文引言北海百度seo
  • 网站空间哪家做的好网络营销的常用工具
  • 网站开发具体问题优化营商环境
  • wordpress4.5 火车头廊坊seo培训
  • 怎么做多个网站单点登录艺考培训
  • 网站怎么做双语种seo关键词如何设置
  • 用java做的游戏下载网站有哪些内容成都网络推广优化
  • 慈溪市网站建设google官网
  • 网站建设计划seo网站排名优化软件是什么
  • 大连网站建设谁家好郴州网站定制
  • 网站建设背景怎么写一个企业该如何进行网络营销
  • 为女朋友做的表白网站百度大数据分析工具
  • 上海高端网站建设服务公seo推广公司
  • 找人合伙做网站平台仿站定制模板建站
  • 深圳市网站建设科技公司腾讯网网站网址
  • wordpress语言文件夹seo销售好做吗
  • 河北建设集团官网西安网站seo