美文网首页
scratch 前端虚拟机

scratch 前端虚拟机

作者: hanxianshe_9530 | 来源:发表于2019-11-01 15:55 被阅读0次

    react的面向对象写法一大优势是可以通过闭包来实现高阶组件(HOC),把组件分成渲染层的纯组件和负责逻辑层的外壳,这样能更方便维护.

    react是面向对象的写法,对后端程序员十分友好,也容易与ts整合进行静态编译.

    gui项目代码有5万行,前端是用react写的,虽然有各种container套component,compose套HOC,而且props嵌套极深,

    react的思想是可控和可回溯,可控就是框架足够简单,功能都通过插件扩展,这样不容易出现奇奇怪怪的问题,可回溯就是数据不可变,react中的所有状态都是以副本的形式出现的,他一是在model层拥有immuable这货,定义的变量是不可变的,想给变量赋值必须建副本,我想用react开发悔棋程序肯定特别方便,二是redux中的reducer必须返回一个新的state,所有存在过的state都不能被覆盖,三是在jsx中即使是在this.setState改变数据的时候react也会为setState维护一个prevState状态,以保证数据的可回溯性,

    react要使用最简单的结构完成数据的可控和可回溯,其他的所有功能全部交给第三方插件来做,比如用'classNames'解决多个class名问题,用'babel-plugin-react-html-attrs'来解决react中class,for等关键字冲突问题,依赖webpack来解决

    前端虚拟机

    虚拟机用来屏蔽底层硬件差异和dom渲染差异,使得程序可以跨端移植, react本质上就是虚拟机,虚拟dom屏蔽设备渲染差异( 因为dom只有pc浏览器能识别 , viewPort只有手机能识别 , 但虚拟dom是js对象, 他可以被react解析成dom或者viewPort,这就实现了ui层跨端 ,而native屏蔽底层硬件差异 ,来实现跨端, 通过条件编译使得程序可以在Android和ios都可以运行,底层跨端实现的原理是通过虚拟IO:比如鼠标的点击事件,触摸屏的touch事件,都会在虚拟机中统一映射成一个虚拟机能识别的key, key都是框架自己定义的,比如ON_TOUCH, 每个key对应一个动作 ,然后通过条件编译推送给硬件,就可以跨端了)

    相关文章

      网友评论

          本文标题:scratch 前端虚拟机

          本文链接:https://www.haomeiwen.com/subject/obzfbctx.html