ThinkJS 2.1版本出来了,支持TypeScript且性能大幅提升_编程语言综合教程-查字典教程网
ThinkJS 2.1版本出来了,支持TypeScript且性能大幅提升
ThinkJS 2.1版本出来了,支持TypeScript且性能大幅提升
发布时间:2016-01-20 来源:查字典编辑
摘要:ThinkJS1.0版本在2014年9月份发布,是由360奇舞团前端工程师李成银(welefen)主导设计和开发,其命名和项目结构上大量借鉴...

ThinkJS1.0版本在2014年9月份发布,是由360奇舞团前端工程师李成银(welefen)主导设计和开发,其命名和项目结构上大量借鉴了ThinkPHP这个在国内知名度很高的PHP框架。ThinkJS2.0版本于 2015年10月30发布,在1.0版本的基础上做了大量改进,功能更加全面,具备可扩展性,并且支持ES 6/7特性。今日,ThinkJS 2.1版本正式发布,其不仅支持TypeScript,性能上也有大幅提升,具体如下:

一:支持TypeScript

TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,向这个语言添加了可选的静态类型,在大型项目里非常有用。ThinkJS 2.1 开始支持了创建 TypeScript 类型的项目,并且开发时会自动编译、自动更新,无需手工编译等复杂的操作。细则如下:

1、创建 TypeScript 项目

2、.d.ts 文件

3、已有项目升级为 TypeScript 项目

修改入口文件

修改 package.json

修改 .thinkjsrc

下载 think.d.ts 描述文件

修改文件后缀

项目文件里添加描述文件

二:性能提升

评价一个框架是否出色,一方面看支持的功能,另一方面也要看性能。虽然 ThinkJS 更适合大型项目,功能和复杂度远远超过 Express 和 Koa,但性能上并不比 Express 和 Koa 逊色多少,具体的测试数据请见下图。

注:以上数据使用分布式压力测试系统测试。

从上图中测试数据可以看到,虽然 ThinkJS 比 Express 和 Koa 性能要差一些,但差别并不大。ThinkJS 和 Sails.js 都更符合大型项目,但 ThinkJS 的性能要比 Sails.js 高很多。

具体测试代码请见:https://github.com/thinkjs-team/thinkjs-performance-test,可以下载代码在本机测试,如果使用 ab 测试工具,请注意该工具在 Mac 系统下很不稳定,多次测试结果会相差很大。

三:更多特性

ThinkJS 2.1版本除了上述两个较为突出的特性以外,更多特性如下:

Controller 支持子目录的形式

支持 PostgreSQL 数据库

Model schema 支持默认值

Hook 里的 middleware 返回 null 可以阻止后续的 middleware 执行

http 和 controller 添加 display 的别名方法 render

添加串行执行方法 think.waterfall

Validate 支持正则

fetch 支持传数据

Logic 支持判断请求类型

定时任务里支持直接调用 action

Babel 升级到 6

国际化语言对大小写不再敏感

将获取模板文件内容改为异步

http 对象不在继承自 EventEmitter 类

去除 think.mode_mini 模式,controller 支持子目录

数据库配置 name 改为 database

修改现在的 fields 为 schema

数据库配置 pwd 改为 password

优化 http 对象生成方式,不用每次都复制

过滤 .svn, .git 等隐藏类型的文件

将文件 bin/index.js 移动为 src/command.js

runtime 目录移动到项目根目录下,添加 think.RUNTIME_PATH 路径常量

adapter type 增加自动转为小写的功能,并给出提示

增加 thinkData,用于缓存系统常用数据

合并 think.locale 和 controller.locale 方法

修复 nunjucks 模板继承文件找不到的问题

修复 pathname 里含有转义的 / 导致识别错误的问题

修复 http.file 方法返回的数据遭到修改导致源数据也修改的问题

修复路径中 / 在 windows 下需要替换为 的问题

修复 nunjucks 下模板文件在不在根目录导致报错的问题

修复 production 环境下,页面上可能输出敏感数据的问题

修复 development 模式下,JSON 数据解析失败后没有报错信息不好定位的问题

修复 view root_path 修改后,创建模块时视图路径没更新的问题

修复 required|int 规则校验不正确的问题

修复 redis cache 解析配置的问题

修复 REST API 不支持 logic 的问题

修复 count 方法如果传入字段名是关键字会出错的问题

相关介绍:ThinkPHP

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。[1]

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite以及PDO等多种数据库,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。

作为一个整体开发解决方案,ThinkPHP能够解决应用开发中的大多数需要,因为其自身包含了底层架构、兼容处理、基类库、数据库访问层、模板引擎、缓存机制、插件机制、角色认证、表单处理等常用的组件,并且对于跨版本、跨平台和跨数据库移植都比较方便。并且每个组件都是精心设计和完善的,应用开发过程仅仅需要关注您的业务逻辑。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新编程语言综合学习
    热门编程语言综合学习
    编程开发子分类