高性能迷你React框架anu发布
随着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发布相关推荐
- 发布高性能迷你React框架anu
anu, 读作[安努],原意为苏美尔的主神. anu是我继avalon之后又一个新框架(github仓库为https://github.com/RubyLouvre/anu, 欢迎加星与试用) 此框架 ...
- 高性能迷你React框架 anu1.2.3 发布
本版本主要添加了renderToNodeStream的支持 解决PropTypes的share问题 var check = function () {return check; }; 修复utils的 ...
- anu,一个无痛实践React的迷你React框架
近年来,冒出大量MVVM框架,但它几乎无一例外依赖于babel, webpack等编译或手脚架,这让小公司出身的前端们望洋兴叹.因此小城市的前端们,没有高手带着,许多培训班出身,或自学成才转行,如果引 ...
- client高性能组件化框架React简单介绍、特点、环境搭建及经常使用语法
[本文源址:http://blog.csdn.net/q1056843325/article/details/54729657 转载请加入该地址] 明天就是除夕了 预祝大家新春快乐 [ ]~( ̄▽ ̄) ...
- 美团点评高性能跨平台动态化框架-Picasso
点击上方"开发者技术前线",选择"星标" 13:21 在看 真爱 转载声明:本文转载自「美团点评技术博客」 背景 Picasso是大众点评移动研发团队自研的高性 ...
- python比flask更好的框架_(入门篇)Python框架之FastAPI——一个比Flask和Tornado更高性能的API 框架...
用官方的话来说,FastAPI 是一种现代,快速(高性能)的 Web 框架,基于标准Python 类型提示使用 Python 3.6+ 构建 API FastAPI 站在巨人的肩膀上? 很大程度上来说 ...
- [强烈推荐] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析
新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基 ...
- 迷你MVVM框架 avalonjs 入门教程(司徒正美)
迷你MVVM框架 avalonjs 入门教程 关于AvalonJs 开始的例子 扫描 视图模型 数据模型 绑定属性与动态模板 作用域绑定(ms-controller, ms-important) 模板 ...
- [译] 项目什么时候需要 React 框架呢?
本文讲的是[译] 项目什么时候需要 React 框架呢?, 原文地址:When Does a Project Need React? 原文作者:CHRIS COYIER 译文出自:掘金翻译计划 译者: ...
- React框架简介(JSX语法、组件、虚拟DOM渲染)
目录 React框架 为什么要学习React React特点 React核心 JSX语法 语法详解 React开发过程 实际DOM 虚拟DOM React组件 函数组件 类组件 虚拟DOM渲染过程 R ...
最新文章
- 刷新记录,算法开源!字节跳动获人体姿态估计竞赛双冠 | CVPR 2019
- 深入理解Pytorch之register_buffer
- Python学习(四)数据结构 —— set frozenset
- jquery和JavaScript区别
- elasticSearch5.x与mysql数据库同步
- office选项-》高级-》显示 中, 显示此数目的“最近使用的文档” 为灰色,无法更改
- HDOJ 2072 单词数
- vscode如何设置大小写转换的快捷键
- 能链发布数字藏品为用户定制专属数字礼物
- uniapp 静态图片不显示
- 日语形容词形容动词变化型总结
- 用java写一个汽车加油的程序_Java实现 LeetCode 134 加油站
- 韦仕敦大学计算机科学,2020年西安大略大学有哪些优势专业
- java中各种加密算法的实践应用
- 百度地图点击marker换图标的两种方式
- DNSPod十问纪中展:从摇滚文青到科学队长
- SNMP协议——网络管理概述
- 【论文笔记】LSNet: Extremely Light-Weight Siamese Network For Change Detection in Remote Sensing Image
- 啥子是volatile
- 令我难忘的DB2数据库之路