随着react的流行,针对其改良方案也逐渐增多起来。有的在体积上进行优化,有的在性能上进行优化,有的在两者上做努力。anu就是最后一种情况。

anu是我继avalon之后又一个新框架,解决移动端打包过大的问题而诞生的。内部名字叫qreact,它早期是基于preact改进来的,已经在公司业务上使用了。

preact, react-lite是现在比较流行的react-like框架。当然也有人提到inferno,但inferno要改动过多。参考这些框架,我的迷你react框架anu走得更远,完全兼容react-redux, react-router, 官方chrome调试工具。性能上也非常优秀。

下面是dbmonster的测试结果:

preact想在业务线用其实还需要用preact-compat,用了后性能可能折损过半。

体积大概是原来的1/10, 从3万行变成1.7K

更多例子可以见GITHUB仓库

https://github.com/RubyLouvre...

https://github.com/RubyLouvre...

我会继续优化anu,让它的浏览器兼容性更好,性能更好。欢迎大家加星与试用

<!DOCTYPE html>
<html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width"><script type='text/javascript' src="./dist/React.js"></script><script src="./test/babel.js"></script><script type='text/babel'>var svar str = ''class Component1 extends React.Component {componentWillUnmount() {str += 'xxxx'}render() {return <div className="component1">{this.props.children}</div>}}class Component2 extends React.Component {componentWillUnmount() {str += ' yyyy'}render() {return <div className="component1">xxx</div>}}var index = 1function detect(a) {if (index === 1) {// expect(typeof a).toBe('object')} else {// expect(a).toBeNull()}}class App extends React.Component {constructor(props) {super(props)this.handleClick = this.handleClick.bind(this)}handleClick() {index = 0this.forceUpdate()}render() {return index ?<div ref='a' onClick={this.handleClick.bind(this)}><Component1><p ref={detect}>这是子节点</p><Component2 /></Component1></div> : <div>文本节点</div>}};window.onload = function(){s = ReactDOM.render( <App />, document.getElementById('example'))}</script>
</head><body><div>这个默认会被清掉</div><div id='example'></div></body></html>

脚手架: https://github.com/Levan-Du/a...

高性能迷你React框架anu发布相关推荐

  1. 发布高性能迷你React框架anu

    anu, 读作[安努],原意为苏美尔的主神. anu是我继avalon之后又一个新框架(github仓库为https://github.com/RubyLouvre/anu, 欢迎加星与试用) 此框架 ...

  2. 高性能迷你React框架 anu1.2.3 发布

    本版本主要添加了renderToNodeStream的支持 解决PropTypes的share问题 var check = function () {return check; }; 修复utils的 ...

  3. anu,一个无痛实践React的迷你React框架

    近年来,冒出大量MVVM框架,但它几乎无一例外依赖于babel, webpack等编译或手脚架,这让小公司出身的前端们望洋兴叹.因此小城市的前端们,没有高手带着,许多培训班出身,或自学成才转行,如果引 ...

  4. client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法

    [本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄) ...

  5. 美团点评高性能跨平台动态化框架-Picasso

    点击上方"开发者技术前线",选择"星标" 13:21 在看 真爱 转载声明:本文转载自「美团点评技术博客」 背景 Picasso是大众点评移动研发团队自研的高性 ...

  6. python比flask更好的框架_(入门篇)Python框架之FastAPI——一个比Flask和Tornado更高性能的API 框架...

    用官方的话来说,FastAPI 是一种现代,快速(高性能)的 Web 框架,基于标准Python 类型提示使用 Python 3.6+ 构建 API FastAPI 站在巨人的肩膀上? 很大程度上来说 ...

  7. [强烈推荐] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析

    新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基 ...

  8. 迷你MVVM框架 avalonjs 入门教程(司徒正美)

    迷你MVVM框架 avalonjs 入门教程 关于AvalonJs 开始的例子 扫描 视图模型 数据模型 绑定属性与动态模板 作用域绑定(ms-controller, ms-important) 模板 ...

  9. [译] 项目什么时候需要 React 框架呢?

    本文讲的是[译] 项目什么时候需要 React 框架呢?, 原文地址:When Does a Project Need React? 原文作者:CHRIS COYIER 译文出自:掘金翻译计划 译者: ...

  10. React框架简介(JSX语法、组件、虚拟DOM渲染)

    目录 React框架 为什么要学习React React特点 React核心 JSX语法 语法详解 React开发过程 实际DOM 虚拟DOM React组件 函数组件 类组件 虚拟DOM渲染过程 R ...

最新文章

  1. 刷新记录,算法开源!字节跳动获人体姿态估计竞赛双冠 | CVPR 2019
  2. 深入理解Pytorch之register_buffer
  3. Python学习(四)数据结构 —— set frozenset
  4. jquery和JavaScript区别
  5. elasticSearch5.x与mysql数据库同步
  6. office选项-》高级-》显示 中, 显示此数目的“最近使用的文档” 为灰色,无法更改
  7. HDOJ 2072 单词数
  8. vscode如何设置大小写转换的快捷键
  9. 能链发布数字藏品为用户定制专属数字礼物
  10. uniapp 静态图片不显示
  11. 日语形容词形容动词变化型总结
  12. 用java写一个汽车加油的程序_Java实现 LeetCode 134 加油站
  13. 韦仕敦大学计算机科学,2020年西安大略大学有哪些优势专业
  14. java中各种加密算法的实践应用
  15. 百度地图点击marker换图标的两种方式
  16. DNSPod十问纪中展:从摇滚文青到科学队长
  17. SNMP协议——网络管理概述
  18. 【论文笔记】LSNet: Extremely Light-Weight Siamese Network For Change Detection in Remote Sensing Image
  19. 啥子是volatile
  20. 令我难忘的DB2数据库之路

热门文章

  1. Atitit 财政赤字解决方案
  2. Atitit.软件兼容性原理与实践   v5 qa2.docx
  3. paip.ollydbg 设置c++ qt API断点总结
  4. 盘点FOF基金投资运作中踩过的那些大坑……
  5. 阿里架构师首次畅谈余额宝背后的故事
  6. 港科大教授张晓泉:目前AI多做预测分类,还需经济学发现因果关系
  7. (转)马克•柯霍德斯:一位王牌大空头的传奇人生
  8. (转)嘉信理财再度全面降佣,它会否成为投资界的Amazon?
  9. Julia: find 和其它
  10. CMP?MSP?1+1才能大于2