笔记视频_微信里笔记怎么编辑

笔记视频_微信里笔记怎么编辑日常开发小笔记(this小操作)

大家好,又见面了,我是你们的朋友全栈君。

没事儿玩些小操作还是蛮开心的,毕竟闲下来人就有点慌,真是搬砖的命,难怪没女朋友搬砖就能很开心了。

项目第一阶段快告一段落了,然后就做起二期的准备了,功能变动应该不会太大还是table、search、header、detail。持续写功能不多的页面话就有点无聊了,那就玩点花哨的吧,不把自己玩死就好了,搞个根据配置创建页面的组件的功能吧!

table基类

页面玩出花还是要走这几步:

1.根据初始参数请求list数据

2.搜索完善请求参数(更新请求参数),再请求list数据

3.翻页(更新页码部分请求参数),再请求list数据

4.读取本地缓存数据如果有数据就手动操作请求。

噪点操作

导出、新增…….

关于this的小操作在这些噪点操作里面,首先这些操作有的页面有有的没有。一般写react操作这些操作都包含一个操作函数或组合操作。

class test extends Component {
   constructor(props) {
      super(props);
      this.func = this.func.bind(this)
   }
   // 省去千万条代码
   ................
}

所以自己想这些不确定的操作能不能由外部传入,但是外部传入的函数放到内部能不能访问到this这是一个问题,并且初始执行constructor实例化的时候能不能挂到对象属性上这是一个问题。看经常在constructor中写的this绑定的方式其实大概的意思就是在this上创建一个属性指向一个函数然后调用bind修改运行时this指向。所以就写了一个上面的扩充事件的方法,做了类似于constructor里面写绑定的功能。

然后操作事件的在视图上面的显示放到renderSearch里面作为参数,做到不管视图上要添加什么功能都能访问到新增的事件并且绑定时不会出现this为空的情况。

更新流程优化

之前里面写了一个state更新操作的方法,还挺好的但是用的时候看之前的代码是放到componentWillUpdate里的。然而,我们用的是16之后的版本所以这个很可能就要被抛弃了。所以自己做了个优化,改用了最新的生命周期函数。但是这个是一个静态方法并不属于实例,所以很多this操作没办法做。

这里优化的一个又和上面的槽点操作有关,首先之前写的这个更新state的方法是用来处理重复更新的操作的,所以list请求这个更新流程是所有地方都有的,但是如果做更新或者提交之类的操作不管需要新建操作函数,相应的也要在更新流程里面添加操作。这个地方也就想从里面拨出一些到外面,于是写了一个用来执行更新流程的函数。当然目前是这么个想法,然后写了,但是总感觉实现上还是不太好功能函数还有优化的地方。

具体上的想法大概是,在更新时候的执行回调函数里加入一个外部传入的函数打断一下内部的更新过程,做到能从外部参与更新的效果,参照了一下后端老哥写的面向切面编程的思路。如果有多个更新流程需要执行,等到更新执行完之后再返回更新完的统一state数据。

感觉关于this这一点算是吃透一大半了,不过还是有些点不很确定。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107055.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 国税总局发票查验平台验证码识别方案,识别率达98%「建议收藏」

    国税总局发票查验平台验证码识别方案,识别率达98%「建议收藏」这是一篇含金量很高的干货文章,国家税务总局全国增值税发票查验平台验证码识别方案和具体思路,实验结果测试了200+次,识别率达到98%以上,识别速度的话,CPU大概5-8毫秒左右,模型大概3mb。

    2022年7月17日
    22
  • babel转换es6_ideamaven依赖配置

    babel转换es6_ideamaven依赖配置用Babel-cli将ES6转ES5一、为什么要转ES5   虽然ES6非常好用,但并不是所有浏览器所有客户端都适应ES6的,降成ES5是为了更强的使用性。二、安装转换工具babel-cli1.第一步初始化文件夹(如果已经有package.json文件说明已经初始化过了,可以跳过)右键在文件夹在终端中打开,输入命令npminit-y或者cnpminit-y2.在终端继续输入命令cnpminstall–globalbabel-cli安装ba

    2022年9月16日
    0
  • 监控RuntimeException「建议收藏」

    监控RuntimeException「建议收藏」在线程提前终止的最主要原因就是RuntimeException,由于这些异常表示出现了某种编程错误或者其他不可修复的错误,因此它们通常不会被捕获。它们不会在调用栈中逐层传递,而是默认地在控制台中输出栈追踪信息,并终止线程我们可以通过实现java.lang.Thread.UncaughtExceptionHandler接口来获取RuntimeException异常的信息。

    2022年7月25日
    9
  • ★Navicat For Mysql 数据库备份与还原

    ★Navicat For Mysql 数据库备份与还原一.首先设置,备份保存路径工具->选项点开其他->日志文件保存路径二.开始备份备份分两种,一种是以sql保存,一种是保存为备份1.SQL保存右键点击你要备份的数据库,->转储SQL文件选择位置和文件名点击保存,开始转储导入建议删除所有表或重新建数据库右键数据库运行SQL文件2.N…

    2022年6月5日
    35
  • ettercap详细使用教程

    ettercap简介ettercap是一款强大的嗅探工具。ettercap主页面mitm方法ARPARP欺骗 ICMP发送ICMP数据包重定向到kali,然后由kali转发(只有受害者发出的数据包经过kali) DHCP发送DHCP数据包,让受害者认为kali是路由器,(只有受害者发…

    2022年4月4日
    442
  • 【原创】无锁编程技术及实现

    【原创】无锁编程技术及实现无锁编程技术及实现作者:jx(360电商技术组) 1.基于锁的编程的缺点 多线程编程是多CPU系统在中应用最广泛的一种编程方式,在传统的多线程编程中,多线程之间一般用各种锁的机制来保证正确的对共享资源(share resources)进行访问和操作。在多线程编程中只要需要共享某些数据,就应当将对它的访问串行化。比如像++count(count是整型变量)这样的简单操作也得加锁,因为即便是增量操作

    2022年5月1日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号