xmlplus v1.5.8 正式发布 - 全栈 JavaScript 框架

qudou
 qudou
发布于 2017年04月27日
收藏 21

全栈 JavaScript 框架 xmlplus v1.5.8 正式发布

xmlplus 是一个设计非常独特 JavaScript 框架,用于快速开发前后端项目。

基于组件设计

在 xmlplus 中,组件是基本的构造块。评价组件设计好坏的一个重要标准是封装度。基于 xmlplus 设计的组件具有极高的封装度。

组件由命名空间组织。基于传统目录路径的组件引用方式,让组件的使用更为便捷。

假设你已经定义好一个位于命名空间 //ui 的 Calendar 组件,那么你可以在 HTML 页面中这样使用它:

<Calendar xmlns='//ui'/>

至于如何定义组件,请参考官方文档 http://xmlplus.cn/docs

友好的相容性

非侵入式的设计,使得 xmlplus 可以与当今几乎所有的框架或者库集成使用。

利用 xmlplus 出色的整合能力,你可以整合现有的库或框架到你的项目中,以避免陷入重造轮子的困境。

下面是一个封装 Bootstrap 按钮组件的一个示例:

Button: {
    xml: "<button type='button' class='btn'/>", fun: function (sys, items, opts) { this.addClass("btn-" + opts.type);
    }
}

你可以像下面这样非常简洁地使用它:

<Button type='default'>Default</Button> <Button type='primary'>Primary</Button> <Button type='success'>Success</Button>

一次学习, 多端使用

xmlplus 独特的设计,使得它可以以相同的方式,设计基于浏览器端以及基于服务端的应用。

在浏览器端,使用它可以高效地开发单页应用。在服务端,你既可以用它来开发服务应用,还能用它开发传统网站。

下面是一个服务端的一个简单的 Sqlite 组件的封装。

Sqlite: {  fun: function (sys, items, opts) {
        var sqlite = require("sqlite3").verbose(),
        return new sqlite.Database("data.db");
    }
}

你可以像下这样使用上面已经定义好的 Sqlite 组件:

Example: {
    xml: "<Sqlite id='sqlite'/>", 
    fun: function (sys, items, opts) { let stmt = "SELECT * FROM users";  items.sqlite.all(stmt, (err, rows) => console.log(rows));
    }
}

本框架支持在后台直接序列化输出 HTML 代码,所以使用 xmlplus 开发传统网站是极其便利的。下面示例简单地演示了这一点:

HttpServer: {
    xml: `<html>
            <body id='body'>body</body>
          </html>`, fun: function (sys, items, opts) {
        let http = require("http");
        http.createServer((req, res) => {
            sys.body.text("hello,world");
            res.setHeader("Content-Type", "text/html");
            res.end(this.serialize(true));
        }).listen(80);
    }
}

通过示例,你可以发现,在处理服务接受请求后,可以动态改变 XML 的文档结构,这一点使得 xmlplus 开发传统网站方式与 PHP、JSP 等脚本语言有着很大的不同。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:xmlplus v1.5.8 正式发布 - 全栈 JavaScript 框架
加载中

最新评论(2

qudou
qudou

引用来自“shawumu”的评论

思路新颖啊,mark一下
谢谢支持,格式乱了,下回一定整理下!
shawumu
shawumu
思路新颖啊,mark一下
返回顶部
顶部