获得徽章 0
用create-react-app搭一个聊天室,用到了socket.io。调试时通过webpack-dev-server(WDS)代理到我自己的端口位于3001的koa服务器上,但是WDS默认并不能代理WebSocket请求,所以需要重新配置一下WDS服务器。然而create-react-app的webpack.config.js被封装到了react-scripts中,因此要按照此处来设置 create-react-app.dev
展开
1
长远伐见!Mathematica以某种方式又回到生活中了。
陶马文于2020-02-02 23:08发布的图片
评论
marvintau.github.io

把react-window扩展了一下,从而能够浏览树形结构的数据。和显示一个树形结构(像文件夹一样不同),是将显示的数据分为“历史”和“当前层级的所有数据”这种形式,有利于阅读,以及扩展更多的编辑功能。

去年整个一年里,有将近一个月是在研究如何实现用各种hooks已经漂亮地实现了的(尤其是状态管理方面)的方法,甚至想到从React迁移到Polymer来构建稳定可重用的组件,但现在基本用hooks就能解决了。
展开
评论
You can get inspired by the way of analyzing a similar problem. But it doesn't mean to adopt a similar solution.
4
2009年的时候,Joe Armstrong出了一本书《Programming Erlang》,那个时候我对函数式编程非常感兴趣,就学了Erlang。

我拿Erlang做了很多有意思的事,比如在自己的计算机上模拟swarm computing,也做了很多探索性的研究,比如研究BEAM的底层实现。但是这一切都没什么结果。我用Erlang做的最大的项目,是2014年创业项目的一个手游后端。

用Erlang可以非常快地加一个高效稳定的实时平台,然而在带有大量状态的时候就变得不给力了,状态必须得以函数参数的形式传入,所以你必须得实现状态机,而不是状态。此外Erlang是个非常弱类型的语言,类型检查必须得通过运行时传入tuple和模式匹配来实现。这使得快速编写可复用的代码变得非常困难,因为编译器几乎帮不上什么忙,你必须得亲自写出所有错误该怎么处理。

我仍然非常喜欢Erlang精巧的设计和概念,这让它非常强大,但是这种强大来自于强大的约束,这种强大的约束让很多事情变得不方便。所以后来渐渐用不上Erlang了,但是今天流行的的JavaScript和Rust很多地方都受到Erlang的影响。

顺便一提,那个时候知道了研究Erlang的余锋老师,后来他的花名褚霸变得更有名。

Joe Armstrong也是我很敬仰的程序员,他写的书深入浅出,然而他对复杂实时系统有着非常清晰的认识,以及不遗余力地批判现今OOP掌控的世界到处充满的过度设计。Joe在2019年4月20日去世了。2018年底他的博客换成了TiddlyWiki,还写了不少研究TiddlyWiki的文章。
展开
1
全栈工程师、打印机维修员 @非知名会计事务所
汇编语言的本质是HTML,汇编语言里伪指令就像HTML模版语言。
评论
用上了react hooks之後,就覺得寫一個component跟玩factorio時連結傳送帶一樣。
评论
React.cloneElement只能用于class,不能用于通过function定义的component和hooks.
评论
Array没有一个last方法有的时候很不方便,arr[arr.length-1]这种写法如果遇到变量名比较长就会很啰嗦。一个替代方案是[...arr].pop()
2
如何在OS X下批量将.doc (Word 97)转换成.docx(Word 2003)

你并不需要LibreOffice+unoconv,也不需要自己写一个automator脚本,也不需要一个online converter,只需要一行shell命令:
```
textutil -convert docx *.doc
```
就可以将目录下所有的doc文件转换过来了。方便好用,也可以结合shell命令(find, xargs等)使用。
展开
评论
关于WebComponent的实验结束了,和React.js等框架的思路还是非常不同。后者可以快速实现一个应用的原型,但是前者的目标是用来设计可复用的组件,你得一个组件一个组件地写,然后拼装起来,对于基于原型开发的项目可能不那么快。

但WebComponent的优点是你可以完全把握细节。你可以在自定义组件中实现conditional rendering,只需要把控制条件的DOM属性暴露出来,然后把要渲染的内部DOM先创建好。用WebComponent的另一个优点是shadow DOM支持伪类,你可以想一种办法将所有DOM的inline CSS汇总到shadow root的cssText中去。此外CSS也出现了一些有意思的属性,比如contain,减少重新计算layout和重绘的范围,可以让你更精细地控制组件的渲染行为。

总之自底向上的写法看起来可能会比较耗时,但事实上对于较为复杂的应用,你用一个替你做了很多事的框架,很可能会产生各种各样稀奇古怪的效果,比如该重绘的不重绘,不该重绘的重绘了很多次,你投入在解决这些quirks的时间比你想得要多很多。当框架日趋复杂,选择也越来越多时,对于内部状态较为复杂,同时对外部知识依赖较少的一类组件,推荐用WebComponent自己来写。
展开
2
当你发现都可以用WebComponent搞出一套前端框架的时候,你就得考虑一下使用框架的意义在哪儿了。 Eat your own dog food,不要轻易为别人写程序。
14
关注了标签 DOM DOM
全栈工程师、打印机维修员 @非知名会计事务所
关注了标签 字体 字体
全栈工程师、打印机维修员 @非知名会计事务所
关注了标签 Mac Mac
全栈工程师、打印机维修员 @非知名会计事务所
关注了标签 React.js React.js
全栈工程师、打印机维修员 @非知名会计事务所
下一页
个人成就
文章被点赞 3
文章被阅读 11,081
掘力值 161
收藏集
2
关注标签
6
加入于