react把表格渲染好ui_游戏ui开发中有没有类似reactjs这样的ui框架?-程序员宅基地

技术标签: react把表格渲染好ui  

我在进行相关的尝试,用于 AVG 或卡牌手游的开发。

Demo: AVG.js Demo

这是我正在做的开源框架 AVG.js,近期会开源。作为面向 Web 的轻游戏框架,考虑了很多 Web 的特点,也融入了很多来自近几年面包工坊做 BKEngine 的经验。

(实力广告一波:BKEngine - AVG/Galgame游戏引擎 - 免费 易用 高效 安全 跨平台)

在 React 方面主要用了这些:

- 使用 React 封装了 pixi.js

- 通过 react-router 管理界面切换

React 的 vdom 本身对游戏开发确实没什么意义,意义在数据的控制、属性的更新上。

React 的引入让游戏界面逻辑变得有序和便于维护,而不是像以往那样各个精灵实例和功能管理器之间强耦合,事件监听满天飞。

比如,你需要实现「按下按钮X后内容A出现,并且文字B改为xxxx」。若是常规的 pixi.js 开发,你需要知道A和B的实例,并且**在按钮的事件监听中更新他们的属性**,甚至直接在事件处理函数中生成新实例,这就造成了强耦合。

而 React 让这一切反了过来,不是按钮去主动更新,而是让组件各自去根据状态变化来刷新。修改的时候,只需要专注于各个组件本身,而不是为了改A而去X里改代码。这就是数据驱动而非事件驱动所带来的好处。

同时,这也是一种不同于 Unity 式组件化的组件化。

路由替代了传统的场景管理器,换句话说,「跳转到xx场景」变成了「访问xx页面」和「更新局部内容」。相对于场景管理器,路由的粒度更小,同时方便传递复杂的参数。

问题也是有的:

- 其实完全没必要的 vdom-diff 反而降低了性能

- 老生常谈的跨组件问题

- 动态效果

第一个只能靠避免密集调用 setState 解决,重的功能还是要先写原生 class,再封装为 Component。

第二个现在已经不是问题了,Mobx 足够解决了。

最后,动态效果,比如补间动画,也是 React 老生长谈的问题,其实换个思路也能解决,就看团队是否能接受有些不太一样的思路了。

最末尾稍微提一下题主链接里的讨论。vdom 其实不能说是 React 最核心的东西,在我看来,vdom 只是为了解决 DOM 性能问题的一个不得已的方案,当然做得很棒就是了。React 更革命性的东西是引入了单向数据流和状态机的概念,以此让整个前端的**开发思路**都发生了变化。

所以,题主的链接与问题其实不太相关。

可以想一下,Native App 明明也不需要 vdom,那么,React-native 的意义到底在哪?

(p.s. 如果要类比,其实用 react native 比较会比用 react 比较更恰当,在各种意义上都是)

最后打个广告:

未来开源会在这里 AVG.js Project

同时也会在我的专栏 知乎专栏 发布,欢迎关注~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39906878/article/details/112052735

智能推荐

SwiftUI macOS全球开发资源汇总_macos 开发资源-程序员宅基地

文章浏览阅读2.3k次,点赞3次,收藏7次。你说flash好用,苹果给封杀了。你说h5很灵活,苹果悄悄清洗h5。你说kotlin好用,苹果给你造了Swift。你说flutter好用,苹果就自己造了SwiftUI。苹果的原则很简单,我的世界必须都是我的。作为在苹果世界里面种地的码农,俺们还是要遵守人家都规则,能够native就尽量不要高跨平台,能用苹果制造就不要用google生产。大牛肯定要给你布道跨平台的优势,但是人家在做现象级别的app,可以和苹果讨价还价,而俺们这类普通程序员还是老老实实的用苹果造吧。WWDC2020更新汇总本次次._macos 开发资源

dcm4che3处理dicom文件基本操作-程序员宅基地

文章浏览阅读2.3k次。上一篇介绍了如何使用python来操作dicom文件,然后这里介绍一下使用java开源的工具dcm4che3来处理文件,达到一样的效果。 github:https://github.com/dcm4che/dcm4che 然后我们也可以看看官网的介绍,因为dicom涉及的范围比较多,所以d..._dcm4che3 解析dicom

学习C++的第一步,环境搭建:Visual Studio的安装和创建C++项目_visual studio c++安装教程-程序员宅基地

文章浏览阅读9.7k次,点赞8次,收藏39次。无论学习任何语言,首先要有编译环境,这里介绍Visual Studio的安装和使用,作为后面C++学习的环境。当然,除了Visual Studio,还有qtcreater、vscode等IDE可以使用,可以根据自己的喜欢安装对应的软件。下面对Visual Studio的安装进行一个详细说明,对具体版本没有限制。_visual studio c++安装教程

有关SAP中等于空的问题_sap 固定值 為空-程序员宅基地

文章浏览阅读2.1k次。20.17. 表字段初始值、NULL等问题20.17.1. SE11表设置中的Initial Values如果一个表是新创建的,数据库中的所有字段都会被设计成非NULL,此时与钩不钩上“Initial Values”框没有关系,且都会设置默认值,并且所有的主键都会强制将“Initial Values”框钩上该标示只在修改表结构且在现有表结构增加一个字段时,才起..._sap 固定值 為空

[C/C++ -STL]vector底层实现机制刨析-程序员宅基地

文章浏览阅读7.2k次,点赞17次,收藏30次。一、vector底层实现机制刨析通过分析 vector 容器的源代码不难发现,它就是使用 3 个迭代器(可以理解成指针)来表示的:其中statrt指向vector 容器对象的起始字节位置;finish指向当前最后一个元素的末尾字节end_of指向整个 vector 容器所占用内存空间的末尾字节。如图 演示了以上这 3 个迭代器分别指向的位置如图 演示了以上这 2个迭代器分别指向的位置在此基础上,将 3 个迭代器两两结合,还可以表达不同的含义,例如:start 和 finish 可以用来表_vector底层实现

搭建5个节点的hadoop集群环境(CDH5)-程序员宅基地

文章浏览阅读1.9k次。提示:如果还不了解Hadoop的,可以下查看这篇文章Hadoop生态系统,通过这篇文章,我们可以首先大致了解Hadoop及Hadoop的生态系统中的工具的使用场景。搭建一个分布式的hadoop集群环境,下面是详细步骤,使用cdh5 。一、硬件准备基本配置:操作系统64位CPU(英特尔)Intel(R_cdh5

随便推点

【信息系统项目管理师】高项知识框架--考点大汇总_高项管师章节重点知识归纳-程序员宅基地

文章浏览阅读5.9k次,点赞10次,收藏72次。【信息系统项目管理师】高项知识框架–考点大汇总_高项管师章节重点知识归纳

ASP.NET网站制作-程序员宅基地

文章浏览阅读6.4k次,点赞3次,收藏28次。ASP.NET网站制作1、ASP.NET页面对象1网页脚本当客户端通过客户浏览器发送HTTP请求时,web服务器将HTML文档部分和脚本部分返回给客户端浏览器,在客户端浏览器中解释执行并及时更新页面,脚本处理工作全部在客户端浏览器执行完成。优点: 减轻服务器负荷,同时增加页面的反应速度。缺点:浏览器差异性导致页面差异支持的语言: JavaScriptJScript VBScript(2)服务端脚本..._asp.net网站制作

车载 OTA技术概念_sota和ota的区别?-程序员宅基地

文章浏览阅读3k次,点赞10次,收藏54次。总的来说,OTA实现方案分为两种,一种与通常的刷写方式一样,即先擦除当前版本软件,再刷写新版本软件,但这种方法有个隐患,就是新软件有问题时,由于旧软件已经被擦除,没有备份,恢复会很麻烦,因此就提出了另一种,即A/B交换。(Firmware-Over-the-Air),是指不改变车辆原有配件的前提下,通过写入新的固件程序,使拥有联网功能的设备进行升级,包括车辆的发动机,电机,变速箱,底盘等控制系统,比如特斯拉曾通过FOTA新增过自动驾驶功能、增加过电池容量和改善过刹车距离等。,那都将是一项很繁重的任务。_sota和ota的区别?

清空数据库的方法_548数据库清库-程序员宅基地

文章浏览阅读744次。近来发现数据库过大,空间不足,因此打算将数据库的数据进行全面的清理,但表非常多,一张一张的清空,实在麻烦,因此就想利用SQL语句一次清空所有数据.找到了三种方法进行清空.使用的数据库为MS SQL SERVER.1.搜索出所有表名,构造为一条SQL语句declare @trun_name varchar(8000)set @trun_name=''select_548数据库清库

STL --- 四、算法 Algorithms_c++ algorithms-程序员宅基地

STL中的算法提供了丰富的功能,包括常用算法介绍和时间、空间复杂度的选择。在编写程序时需根据具体问题选择适当的算法,满足时间或空间需求。

【计算机网络学习笔记04】网络体系架构与网络协议_网络体系以及网络协议的定义和内容。-程序员宅基地

文章浏览阅读1.4w次。【计算机网络学习笔记04】网络体系架构与网络协议一、网络协议的概念和要素网络协议是计算机网络相互通信的对等层实体之间,用来交换信息时必须遵守的规则或约定的集合。这些为网络数据交换而制定的通信规则、约定与标准被统称为网络协议,简称协议。网络协议主要由三个基本要素组成,分别是语法、语义和时序。语法:用于定义数据和控制信息的结构或格式。语义:用于解释数据或控制信息的具体含义。时序(同步):用于对事件实现顺序的详细说明。二、计算机网络体系结构计算机网络各层、层中协议以及层间接口的集合(即网络层次_网络体系以及网络协议的定义和内容。

推荐文章

热门文章

相关标签