Web 新平台 “airoot-uisys” 释放前端开发活力
写这篇文章比较尴尬,因为当今开发WEB的平台主要是nodejs,代表性的框架就是网络三大框架。很多人都了解也都熟悉,他们的优势之一就是模块化开发,适合大项目的构架,另外就是数据绑定的思想。我开发WEB大概很长时间了,之前前身做flash,后来做flex,用过extjs、j-ui,当然web三大框架都用过,说实话对于开发来讲还是限制性比较大。
由衷的感觉早起开发WEB像拿着画笔,现在开发WEB像拿着印刷机。虽然web开发当今蓬勃发展,丹内在确实siqichenc死气沉沉,没有创意和灵感。
因此,我重新开发了一套工具,这套工具给程序员更自由的发挥空间,并且无论开发者在什么水平,都可以轻易实现模块化的思想。在这套工具里,及时你会最简单的html开发,也不影响你循序渐进的使用。
那么下面看下在套工具的能力:
我们用React写个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
<!-- 定义一个模块 -->
function Element(){
return <h1>Hello Baby!</h1>;
}
<!-- 你要展现的代码写在下面. -->
function App(props) {
return (
<div>
<Element/>
<Element/>
</div>
);
}
ReactDOM.render(
<App />,
document.getElementById('example')
);
</script>
</body>
</html>
看下 airoot-uisys 工具下的写法(其中@pub 表示可以单页渲染)。
<@pub/>
<!-- 定义一个模块 -->
<@define name="Element">
<h1>Hello Baby!</h1>
</@define>
<!-- 你要展现的代码写在下面. -->
<div>
<Element/>
<Element/>
</div>
如果要运行上面的代码,可以看下这个博客:
https://cloud.tencent.com/developer/article/1611252
你也可通过javascript 创建自定义的component
看下React的实现:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="https://cdn.staticfile.org/react/16.4.0/umd/react.development.js"></script>
<script src="https://cdn.staticfile.org/react-dom/16.4.0/umd/react-dom.development.js"></script>
<script src="https://cdn.staticfile.org/babel-standalone/6.26.0/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
<!-- 定义一个模块 -->
function Element(){
return <h1>Hello Baby!</h1>;
}
<!-- 定义一个模块 -->
class App extends React.Component{
constructor(props) {
super(props);
this.state = {comps : [1]}
}
render() {
const {comps } = this.state;
return (
<div>
{comps.map(comp => {
return <Element/>
})}
</div>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('example')
);
</script>
</body>
</html>
看下uisys的实现:
<@pub/>
<!-- 定义一个模块 -->
<@define name="Element">
<h1>Hello Baby!</h1>
</@define>
<!-- 你要展现的代码写在下面. -->
<div>
<!-- dom 内部区域-->
</div>
<script>
function init(){
var element = new Element();
dom.appendChild(element);
}
</script>
上面的代码如果不了解dom关键字,你也可以这么写:
<@pub/>
<!-- 定义一个模块 -->
<@define name="Element">
<div>Hello Baby!</div>
</@define>
<!-- 你要展现的代码写在下面. -->
<div id="ct"></div>
<script>
function init(){
var element= new Element();
#ct.appendChild(element);
}
</script>
uisys 的灵活性非常好,上面的代码你可以分成两个文件,一个放Element.ui ,一个放App.ui。这里就不多演示了。
airoot uisys 现在发布了v1版本,基于它的能力可以创建很多复杂的web应用。
例如可以用HTML渲染Three.js 的功能,如下效果图:
其他如下:
<!--
类注释
@author sunxy
@version 0.0
-->
<@import value="jus.*" />
<@import value="zs.*" />
<@import value="zs.texture.*" />
<desktop>
<style>
*{
transition:all .3s ease;
}
#header{
background-color:#f0f0f0;
}
#header ul{
margin-top:20px;
margin-right:20px;
}
#header li{
float:left;
list-style:none;
margin-right:10px;
}
</style>
<hbox id="header" width="100%" height="60">
<div width="400" height="100%" style="font-family:Microsoft YaHei;font-size:32px;font-weight:bold;margin:10px 0px 0px 15px;">AIroot Library Manager</div>
<div width="100%" height="100%">
<ul style="float:right;">
<li>HOME</li>
<li>ABOUT</li>
<li>EDIT</li>
<li>SERVICE</li>
</ul>
</div>
</hbox>
<position width="100%" height="100%">
<td id="plt" width="100%" height="100%">
<SkyBox>
<children>
<Sphere x="0" y="0" z="0" r="3" w="26" h="24" color="#ffaa00" />
<Sphere x="10" y="0" z="0" r="3" w="26" h="24" color="#00ffaa"/>
<Sphere x="0" y="10" z="0" r="3" w="26" h="24" color="#ff00aa"/>
<Sphere x="0" y="0" z="10" r="3" w="26" h="24" color="#00ff00"/>
<Sphere x="-10" y="0" z="0" r="3" w="26" h="24" />
<Sphere x="0" y="-10" z="0" r="3" w="26" h="24" />
<Sphere x="0" y="0" z="-10" r="3" w="26" h="24">
<texture>
<TextureLoader src="textures/crate.gif" />
</texture>
</Sphere>
<Cube x="20" y="5" width="10" height="10" depth="10">
<texture>
<TextureLoader src="textures/crate.gif" />
</texture>
</Cube>
<Loader src="" />
</children>
</SkyBox>
<fog />
</td>
<LeftLabel />
<RightLabel right="25" top="10" />
</position>
</desktop>
目前我正在用airoot uisys重新做一个flash,为什么选择uisys呢,因为uisys在语言写法上不会给你阻碍,思想到代码很直接,可以看下uisys做成flash IDE的效果,一下全部由uisys开发的web flash ide:
可以看下里面的代码段落:
1.
<!-- PlayEditor.ui -->
<@pub/>
<head>
<style>
body{
margin:0px;
background-color:#dddddd;
}
</style>
</head>
<@import value="jus.*"/>
<desktop>
<plat.TimeLine id="tl" height="230" />
<HBox>
<plat.Library width="320" height="100%"></Library>
<plat.Scene width="100%" height="100%"></Scene>
</HBox>
</desktop>
<script>
function init(){
}
</script>
2.
<!-- Scene.ui -->
<@import value="jus.*"/>
<style>
body{
border-right:1px solid #aaaaaa;
}
.header{
display:flex;
align-items:center;
padding:0px 10px;
background-color:#d0d0d0;
}
.frame{
background-color: #dddddd;
box-shadow:0px 0px 4px rgba(0,0,0,0.2);
position:relative;
}
.bg{
background-color:#fefefe;
}
</style>
<VBox height="100%">
<div height="48" width="100%" class="header">
场景
<Combo>
</Combo>
</div>
<Position width="100%" height="100%" class="frame">
<Index left="100" top="50" right="100" bottom="50"/>
</Position>
</VBox>
airoot uisys 的可塑性非常强,对于插件的定义绝对三大框架后的大佬(我相信),来看下它为人民教育出版社开发的指数联动交互图书:
我们看下其中一页的代码:
<!--
类注释
@author sunxy
@version 0.0
-->
<@import value="component.*" />
<@import value="root.*" />
<page>
<image x="35" y="62" src="img/photo87.png" />
<image x="117" y="655" src="img/photo85.png" />
<blacktext x="126" y="66" audio="audio/page014/OtherData/231_014_01.mp3">Let's talk</blacktext>
<etext x='54' y='238' audio="audio/page014/OtherData/231_014_02.mp3">Mr Jones,<br/>this is Miss Green.</etext>
<etext x='356' y='252' audio="audio/page014/OtherData/231_014_03.mp3">Good morning,<br/>Miss Green.</etext>
<etext x='304' y='497' audio="audio/page014/OtherData/231_014_04.mp3">Good morning.</etext>
<blacktext x="71" y="594" audio="audio/page014/OtherData/231_014_06.mp3"><img src="img/photo88.png" />Draw and say</blacktext>
<etext x='148' y='670' audio="audio/page014/OtherData/231_014_07.mp3">This is Miss Green.</etext>
<etext x='382' y='670' audio="audio/page014/OtherData/231_014_08.mp3">This is Mr Jones.</etext>
<lnum>14</lnum>
</page>
上面的代码在uisys的编写框架下可以实现点击朗读,和通篇朗读,当然还可以支持游戏。
airoot uisys 先介绍这么多。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
10大主流压力测试工具
市面上流行的压力/负载/性能测试工具多是来自国外,近年来国内的性能测试工具也如雨后春笋崛起。同时由于开发的目的和侧重点不同,其功能也有很大差异,下面就为您简单介绍10款目前最常见的测试产品。 1、LoadRunner(商用版)是一款C/S架构的商业版性能测试工具,在国内存在的时间较早,在国内在使用较广泛,知名度较高。该工具免费开放了50个虚拟用户,可供学习和使用。在国内的网站上有破解版本,但是到了最新的12版本,不再有破解版。破解版的仿真度较差,HTTP的瀑布图是按两个两个并发(与浏览器行为不一样),最新版本的仿真相对提高很多,对于HTTP静态请求相似度请求提高到80%,而动态请求就要差很多。由于loadRunner起步早,支持的协议很多,很多不常用的协议都支持,如电子邮件相关协议都支持。但对一些视频协议支持的不太好。loadrunner目前对浏览器最新版支持的不太好,最新的loadrunner12只支持ie11,对其它浏览器如谷歌、火狐等支持的较差。在脚本录制方面有些网站录制不了。价格上比较昂贵,一般小企业无力承担。 LoadRunner官网:https://saas.hpe.com...
-
下一篇
Java并发编程实战 01并发编程的Bug源头
Java并发编程实战 01并发编程的Bug源头 摘要#编写正确的并发程序对我来说是一件极其困难的事情,由于知识不足,只知道synchronized这个修饰符进行同步。本文为学习极客时间:Java并发编程实战 01的总结,文章取图也是来自于该文章 并发Bug源头#在计算机系统中,程序的执行速度为:CPU > 内存 > I/O设备,为了平衡这三者的速度差异,计算机体系机构、操作系统、编译程序都进行了优化: 1.CPU增加了缓存,以均衡和内存的速度差异2.操作系统增加了进程、线程,已分时复用CPU,以均衡 CPU 与 I/O 设备的速度差异3.编译程序优化指令执行顺序,使得缓存能够更加合理的利用。 但是这三者导致的问题为:可见性、原子性、有序性 源头之一:CPU缓存导致的可见性问题#一个线程对共享变量的修改,另外一个线程能够立即看到,那么就称为可见性。现在多核CPU时代中,每颗CPU都有自己的缓存,CPU之间并不会共享缓存; 如线程A从内存读取变量V到CPU-1,操作完成后保存在CPU-1缓存中,还未写到内存中。此时线程B从内存读取变量V到CPU-2中,而CPU-1缓存中的变量V...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- MySQL数据库在高并发下的优化方案
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境