Strve.js这样写法像不像React?

2022-03-30 18:47:45 浏览数 (1)

第一次在手机上写文章,觉得别有一番风趣。上周自己抽时间把Strve.js升级了一下,现在目前版本是2.3.3。有兴趣的朋友可以去官方文档查阅一下。说到官方文档,之前有位朋友说我的文档缺乏可视化界面,就是那种在线编辑插件。这位朋友提的建议很不错,就去网上调研了一下,最后选定了Codepen。选定它的原因是我只是单独的页面展示,这样简单就足够了。

其次,最近连续更新了两个版本:2.3.3和2.3.2,下面我们来看看这两个版本的更新日志。

v2.3.3

  • StrveAPI的参数调整;

v2.3.2

  • HTML标签内容支持显示非字符串类型;
  • 数据绑定统一使用${}符号绑定,不再支持{}符号;
  • 视图模板支持多个根节点;
  • 视图模板支持Text节点;
  • 修复条件渲染时切换状态,无法正确渲染节点;
  • 增加watchDOMChangeAPI,用于监视DOM树变化;
  • 增加支持HTML模板字符串高亮显示(VSCode编辑器需安装 es6-string-html 插件);
  • 删除StrveAPI的data属性参数;
  • 视图模板支持Class类写法;

这次改动也挺大的,主要是内部的整体优化。

比如,借鉴了Vue的v-if指令内部思想实现了条件渲染,利用注释节点实现DOM占位,这一点我觉得非常值得学习。

但是还是遇到了问题,那就是虚拟DOM量级的问题,因为Strve.js内部跟React.js相似,都是数据变化后,通过新老数据的计算 Diff 来得知数据的变化。React.js为了突破性能瓶颈,借鉴了操作系统时间分片的概念,引入了 Fiber 架构。通俗来说,就是把整个虚拟 DOM 树微观化,变成链表,然后我们利用浏览器的空闲时间计算 Diff。一旦浏览器有需求,我们可以把没计算完的任务放在一旁,把主进程控制权还给浏览器,等待浏览器下次空闲。

不过,我相信在之后会慢慢解决这个问题。在上面我们说到React.js,我们常用的方式就是在Class类中写JSX。那么,使用Strve.js其实也可以。

(图一)

(图二​)

Strve.js这次升级的亮点还有很多,可以打开优化后的官方文档查阅,以下有两种方式可供选择(复制以下地址到浏览器)。

1、(中文官方文档)

https://maomincoding.github.io/strvejs-doc/zh/

2、(国内站点)

https://www.maomin.club/site/strvejs/zh/

最近一段时间,Strve.js将不会有大版本的升级,我想先休息一下,然后把精力放在其他学习上面。

不过,大家要是有什么建议,可以在Github上面提issue。

Github地址:

https://github.com/maomincoding/strve

文章结束,谢谢阅读!

0 人点赞