anu - react】的更多相关文章

import { options } from "./util"; import { Children } from "./Children"; import * as eventSystem from "./event"; import { PropTypes } from "./PropTypes"; import { Component } from "./Component"; import { w…
anu, 读作[安努],原意为苏美尔的主神. anu是我继avalon之后又一个新框架(github仓库为https://github.com/RubyLouvre/anu, 欢迎加星与试用) 此框架的创立之意有三: 提升性能, 虽然React的性能相对于传统的MVVM框架是很厉害了,但近几年冒出来的diff算法比官方版更优秀,官方版积重难返,很难短时期吸收这些成果.anu则小船好调头,第一时间收纳其中.性能是王道.天下武功,唯快不破. 压缩体积. React+React-dom加起来有三万多行…
本文将一步步介绍如何使用React或anu创建 一个弹出层. React时代,代码都是要经过编译的,我们很多时间都耗在babel与webpack上.因此本文也介绍如何玩webpack与babel. 我们创建一个ui目录,里面添加一个package.json.内容如下,里面已经是尽量减少babel插件的使用了. { "name": "ui", "version": "1.0.0", "description"…
理想是丰满的,现实是骨感的,react早期的版本虽然号称支持IE8,但是页面总会不自觉切换到奇异模式下,导致报错.因此必须让react连IE6,7都支持,这才是最安全.但React本身并不支持IE6,7,因此anu使有用武之地了. https://github.com/RubyLouvre/anu 但光是anu不行,兼容IE是一个系统性的工程,涉及到打包压缩,各种polyfill垫片. 首先说一下anu如何支持低版本浏览器.anu本身没有用到太高级的API,像Object.definePrope…
在RN中有一个叫Touchable 的组件,这里我们重演如何实现它. Touchable存在的意义是屏蔽click的问题.移动端与手机的click 在一些浏览器是有差异,比如说著名的300ms延迟. Touchable的实现要点是将事件通过包装,然后绑定在它的下一级元素节点上. 而一级元素节点可以通过this.props.children[0]取到.为了解决兼容问题,我们通常用React.Children.only(this.props.children)来取这个节点. 而事件的传递则通过Rea…
这次是使用了一个比较罕见的APIReactDOM.unstable_renderSubtreeIntoContainer,ReactDOM.unstable_renderSubtreeIntoContainer与ReactDOM.render 的区别是,一个能传parentContext,一个不能. function RealModal (props){ return <div className='modal'>{props.children}</div> } class Mod…
当前的前端世界中有很多著名的开源javascript模板引擎如Handlebars.Nunjucks.EJS等等,相信很多人对它们都并不陌生. js模板引擎的现状 通常来讲,这些js模板引擎项目都有一个共同的特性:只专注渲染字符串(html) 早在几年前Backbone等mv*框架流行的时候,js模板引擎遇到了它们的春天,因为Backbone可以支持选配用户自己喜好的模板,并提供了接入方案.但是在新一代前端mv*框架盛行的今天,人们更多的关注点在于React的JSX支持的逻辑何等地强大.Vue的…
众所周知,微信推出小程序以来,可谓火遍大江南北,就像当前互联网兴起时,大家忙着抢域名与开私人博客一样.小程序之所以这么火,是因为微信拥有庞大的用户量,并且腾讯帮你搞定后台问题及众多功能问题(如分享,支付,视频播放,文件上传),相当于你一个人也能做一个公司的事情.在手机上,每个人不可能装超过100个以上的APP,因此这么多小公司想生存下来很不容易,但傍上微信这个大平台,个人也能出一个有上千万人玩的爆款游戏,也能搞一些小商城,避开淘宝京东的锋芒.对于大公司,这也是一个赚钱导流的新途径.相信今后,小程…
本版本对setState与forceUpdate内部依赖的setStateImpl进行了重构,性能稳定在60pfs之上.并且将组件实例的所有内部方法与属性都改成以___开头. https://github.com/RubyLouvre/anu disabled的元素不能触发点击事件 修正mouseenter/mouseleave在IE6-8中的BUG,涉及到relatedTarget的正确获取与LCA处理 简化alignVnode的逻辑,减少插入列队的生成 重构setStateImpl,实现以列…
本版本由于得到业务线同学的大力支持,掀出许多问题,因此改进地方良多,为anujs在完美替换React的道路上前进了不少.现在anujs经测试可以运行于IE7中.至少怎么做可以参看官网,https://rubylouvre.github.io/anu/, 而它在高级浏览器上使用了requestAnimationFrame,性能更进一步,真实反映本文的标题,又快又小.体积比之前更少了. event.originalEvent更名为 event.nativeEvent 修正polyfill中forEa…