获得徽章 11
- #青训营 x 字节后端训练营# GO学习第二十一天,今天学习的是Go设计模式(21)-职责链模式,通过Gin中间件的例子,可以很好证明职责链的扩展性。简单使用Use增加自己创建的中间件,每一个请求都会被新增的中间件所处理。所以开发者可以方便的增加鉴权、限流、脱敏、拦截等操作。这就是所谓的优雅吧。评论点赞
- 今天学习的是有趣又逼真的水波交互动画,引入 pixi-filters.js 库后,我们就可以用它实例化一个 ShockwaveFilter 类来完成波纹效果,具体来说,就是在点击屏幕容器的时候,会实例化ShockwaveFilter 类,其中可以随机传入振幅、波长、速度、半径等参数,目的是为了让每次点击水波效果都有些许差异。再将这个过滤器添加一个单独的数组中保存,同时还要添加到 filters 中,在 step 方法不停执行的时候,我们就要遍历这个 shockwaveFilters 数组,将它的 time 属性累加就会产生水波效果动画了。但是别忘了,它执行完之后还要记得移除掉,避免占用内存空间。展开评论点赞
- #青训营 x 字节后端训练营# GO学习第二十天,今天学习的是Go工具之generate,go generate是 Go 自带的工具。使用命令go generate执行。go generate是利用源代码中的注释工作的。格式如下:
//go:generate command arg1 arg2
复制代码
这样在同一个目录下执行命令go generate就会自动运行命令command arg1 arg2。command可以是在PATH中的任何命令,应用非常广泛。配合stringer命令可以为给定类型生成String方法,就可以实现我们的想法。展开评论点赞 - 今天学习的是超强的苹果官网滚动文字特效实现当然,原动画的实现是结合页面的滚动实现的。
在之前,我介绍了 CSS 最新的特性 @scroll-timeline,譬如这两篇文章:
革命性创新,动画杀手锏 @scroll-timeline
超酷炫的转场动画?CSS 轻松拿下!
@scroll-timeline 能够设定一个动画的开始和结束由滚动容器内的滚动进度决定,而不是由时间决定。
意思是,我们可以定义一个动画效果,该动画的开始和结束可以通过容器的滚动来进行控制。
但是!伤心的是,这个如此好的特性,最近已经被规范废弃,已经不再推荐使用了:展开评论点赞 - #青训营 x 字节后端训练营# GO学习第十九天,今天学习的是由浅到深,入门Go语言Map实现原理,本文介绍Go语言Map底层实现,让我们快速了解Go语言Map底层大致的实现原理。印象最深的知识点是:正常桶的bmap和溢出桶的bmap实际构成了链表关系,这也解释了开篇的“Go里面Map的实现主要用到了数组”,其次还用到了链表。评论点赞
- 今天学习的是React Hooks 最佳实践 🔧,React Hooks 作为 React 库的重要补充,它使函数组件能够以新的方式编写、重用和共享 React 代码。。
随着 Hooks 开始改变开发人员编写 React 组件的方式,需要编写一套 React Hooks 的最佳实践,以便团队内成员更轻松地开发和协作。
虽然本文肯定还有遗漏的内容,但我希望本文分享的技巧能多少帮助大家在项目中以正确的方式编写 React Hooks。展开评论点赞 - #青训营 x 字节后端训练营# GO学习第十八天,今天学习的是并发组件 | Go设计模式实战,本文介绍一个具有层级关系的对象由一系列拥有父子关系的对象通过树形结构组成的并发组合模式。从未实操过如此大篇幅的文章知识,在这篇文章中,我最大的收获是,体会到了并发组合模式的真正优势。评论点赞
- 今天学习的是原生JS手写一个优雅的图片预览功能,带你吃透背后原理,will-change 这个属性,我也是最近无意中发现的,根据 MDN 文档的描述,该属性是用于提升性能的最后手段,怎么理解这句话呢?根据上面实践的结论来看,应该可以认为是浏览器尝试牺牲掉一些画面质量来换取性能提升的一种手段。评论点赞
- #青训营 x 字节后端训练营# GO学习第十七天,今天学习的是(建议精读)HTTP灵魂之问,巩固你的 HTTP 知识体系,刚刚谈到了流的状态变化过程,这里顺便就来总结一下流传输的特性:
并发性。一个 HTTP/2 连接上可以同时发多个帧,这一点和 HTTP/1 不同。这也是实现多路复用的基础。
自增性。流 ID 是不可重用的,而是会按顺序递增,达到上限之后又新开 TCP 连接从头开始。
双向性。客户端和服务端都可以创建流,互不干扰,双方都可以作为发送方或者接收方。
可设置优先级。可以设置数据帧的优先级,让服务端先处理重要资源,优化用户体验。
以上就是对 HTTP/2 中二进制帧的介绍,希望对你有所启发。展开评论点赞 - 今天学习的是在vue中,为什么不能用index作为key?这个例子,文本内容使用的是随机数,所以数据对不上不必太在意。另外,既然index的值不固定,不能作为key,那么扩展一下,可不可以使用随机数作为key呢?答案自然是不能够。因为key值无论是删除还是反转,根本就不能找到相同的key,diff算法就毫无意义了,压根没有复用性可言。
在这个demo3里,数据源放了list这个数据,可言尝试循环它,来对比index作为key的结果,将会更加明显哦。展开评论点赞