Turtle Online:致力于打造超接地气的PC前端架构,组件+API,快速搭建前端开发
架构创作初衷
每当新开一个项目时,都会绞尽脑汁去考虑采用哪种框架:requirejs/seajs、jquery/zepto、backbone、easeUI/Bootstrap/AngularJS……,特别是团队合作的时候,不同的人熟悉不同的框架,最终都会经过一番头疼才能定下来,进入开发之后还会不断的质疑当初的选择。
鉴于此,我想开发一个属于自己的框架,一方面把前端知识贯穿一下,另一方面用起来也顺手,免得又犯选择恐惧症。
开发之初,我给框架的定位是:
1. 好用
- 组件直接采用$(容器).组件名{…},或者Turtle.组件名{…}方式调用,只需必要参数
- 常用组件要有快捷方式,比如: Turtle.alert()
- 常用方法要有,如时间处理、json处理、ajax封装、本地存储等,且统一采用Turtle. 方式调用
- 所有js和css分别都压缩成一个,引用一次即可使用
- 理论上,一个页面对应一个js,采用backbone.view的方式定义,简单明了
2. 功能强大
常用功能要有,整合精简市面上轻量级的组件或框架,为我所用。没有的,自己写。如果现有框架太大或不宜使用,自己写。
3. 扩充方便
允许用户在该框架之下,很方便的写自己的组件,如:使用cPageView扩展页面js和组件
4. 完善的说明文档和Demo
最好能部署在网上,使用方法和源码都可以看得到,
目前的版本,上面功能都可以实现,下一步需要优化的点:
1. 屏幕自适应
2. 完善常用功能
3. 开发框架之外的插件,让用户按需选择
4. 终极目标:模块化框架的所有功能,让用户自行选择所需的功能,然后生成一个用户定制化的框架。
Turtle Online 应运而生
Turtle online 是Turtle框架的PC前端架构(还有他的兄弟Turtle mobile,移动前端框架,因涉及机密,暂未正式发布),包括组件和API两大部分,可以快速的搭建PC前端开发环境。
组件包括日历、分页、图片轮播/图片浏览、各类提示弹框/自定义弹层、气泡提示、图标icon、表单等。
API包括常用JS方法封装(cookie操作、ajax封装、日期处理、浏览器判断、当前位置获取页面跳转、其他常用方法等)、基于Backbone.View/Require.text.js的框架、前端模板。
重要说明:Turtle online组件部分使用了第三方js库layerUI、poshytip。
演示
源码下载
成功案例
一、使用方法
1. 把build目录放到你项目中;
2. 在页面中引入Turtle.min.css和../build/Turtle.min.js;
3. 然后就可以在你的js中使用了,实例如下:
define(['cPageView','text!views/temple/temptest.html'],function(PageView,temptest) {
var View = PageView.extend({
events:{
'click #cpageviewTest1':'clicktest1',
'click #templateA':'clicktest2'
},
initialize: function () {
console.log('initialize');
this.$el.find('#cpageviewTest3').html('默认值被改变');
this.on('initpage',function(){
console.log('initpage');
});
this.trigger('initpage');
},
clicktest1:function(e){
this.$el.find('#cpageviewTest2').html('赋值成功!'+new Date())
},
clicktest2:function(){
$('#templateTest').html(_.template(temptest)({name:'Alec yin'}));
}
})
return new View();
});
4. API的使用,全部都是在Turtle/turtle对象中,直接【Turtle./turtle.】就可以了。
以上四步你就可以使用Turtle online中的方法了,如果你没有使用requireJs的话,API和组件也是可以直接使用的。
二、运行Turtle online
1. 下载Turtle online项目,直接点击index.html即可查看。
(此时有js报错,因为使用了require.js,需要提供项目路径,不影响查看非cPageView实例以外的实例。)
如果你要看cPageView的实例代码,请继续操作:
2. 把turtle online代码部署到服务器上;
3. 修改index.html中的代码【baseUrl: "http://localhost/TurtleOnline",】改成你的部署路径;
4. 再次运行index.html即可。
三、二次开发说明
如果现有的Turtle online无法满足你的需求,你可以在现有代码的基础上定制型开发(注意:请勿提交至代码库,仅自己使用,谢谢!)。
开发步骤:
1. 修改代码;
2. 如果新增或者删除了文件,需要同步修改gulp配置文件gulpfile.js;
3. 安装node_modules依赖包;
4. 执行gulp build命令,合并压缩项目至build目录。
5. 把build目录下文件拷贝你项目中就可以直接使用了。
四、项目架构说明

五、Turtle Online框架运行图














Turtle Online:致力于打造超接地气的PC前端架构,组件+API,快速搭建前端开发的更多相关文章
- 微信事业群WXG成立 致力于打造微信大平台
今天,微信之父张小龙带领微信团队成立微信事业群(WeiXin Group,简称WXG),致力于打造微信大平台,由他们负责微信基础平台.微信开放平台.微信支付拓展.O2O等微信延伸业务的发展,并包括邮箱 ...
- Oracle中的带参数的视图--我们致力于打造人力资源软件
创建包和包体 create or replace package pkg_pv is procedure set_pv(pv varchar2); function get_pv return var ...
- 2019基于Hexo快速搭建个人博客,打造一个炫酷博客(1)-奥怪的小栈
本文转载于:奥怪的小栈 这篇文章告诉你如何在2019快速上手搭建一个像我一样的博客:基于HEXO+Github搭建.并完成SEO优化,打造一个炫酷博客. 本站基于HEXO+Github搭建.所以你需要 ...
- ubuntu下搭建android开发环境之超顺畅模拟器
如果说android系统的卡,像耳边蚊子让人抓狂,那么android模拟器的卡,那就像午睡时的苍蝇.大概就是一样的恶心~~ 那么,这样的问题对于开发者肯定忍无可忍,我也一样,虽然我还没有入门,但我也一 ...
- 相约 DTCC 2021 | Tapdata 受邀分享:如何打造面向 TP 业务的数据平台架构
2021第十二届中国数据库技术大会(DTCC)将于2021年10月18-20日,在北京国际会议中心举行,Tapdata 创始人唐建法受邀分享:如何打造面向 TP 业务的数据平台架构. 演讲时间 ...
- 以人为本打造“超职季”IP,58同城精准匹配企业招聘与打工人
撰文 |懂懂 编辑 | 秦言 来源:懂懂笔记 在大手笔培育IP的背后,58同城是如何考量的? 在餐厅当服务员的李阿姨今年54岁了.她的女儿马上研究生毕业,非常喜欢陈伟霆,手机屏保都是他.李阿姨没想到, ...
- 【HTML5】Web Audio API打造超炫的音乐可视化效果
HTML5真是太多炫酷的东西了,其中Web Audio API算一个,琢磨着弄了个音乐可视化的demo,先上效果图: 项目演示:别说话,点我! 源码已经挂到github上了,有兴趣的同学也可以去st ...
- OneProxy使用手册--致力于打造透明的数据层
介绍 平民软件官网上线(http://www.onexsoft.com) OneProxy是由原支付宝首席架构师楼方鑫开发,目前由楼方鑫创立的杭州平民软件公司(@平民架构)提供技术支持.目前 ...
- photoshop打造超酷炫火焰人像效果
效果图看上去非常的酷.制作方法跟火焰字过程差不多.唯一不同的是前期的处理,需要用滤镜把人物轮廓路径找出来,去色后再用制作火焰的过程制作.最后把最好的火焰叠加到人物上面,适当用蒙版控制区域即可.原图 最 ...
随机推荐
- 关于网卡eth0、eth1以及服务器为什么要把内网和外网卡区分开
在搜搜上看到了这个回答,它解释了什么是eth0,eth1: eth0和eth1这是网卡设备,只是个名称不必纠结.通常服务器会有多个网卡的,所以就有eth0 eth1 eth2 这样的名称,而且在一些系 ...
- Install wget for mac
Download: http://ftp.gnu.org/gnu/wget/ Unpack: tar zxvf wget-1.16.tar Configuration: ./configure If ...
- paip.slap工具与于64位win7与JDBC的性能对比
paip.slap工具与于64位win7与JDBC的性能对比 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog ...
- SpringIOC&AOP
Spring是为简化企业级系统开发而诞生的,Spring框架为J2EE应用常见的问题提供了简单.有效的解决方案,使用Spring,你可以用简单的POJO(Plain Old Java Object)来 ...
- 每天一个linux命令(4):mkdir命令
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1.命令格式: mkdir [选项] 目录... 2.命令 ...
- MyBatis 查询
User.java package com.mycom.mybatis_1.bean; import java.io.Serializable; public class User implement ...
- [C/C++] zltabout(带缩进的格式化输出)v1.0。能以相同的代码绑定到 C FILE 或 C++流
作者:zyl910 一.缘由 在写一些生成文本的程序时,经常需要使用带缩进的格式化输出的功能.以前为此写过不少类似的函数,可惜它们的可重用性很差. 这是因为——1) C语言的FILE*不支持重定向到自 ...
- ios app 提交评审注意事项
在网络上看到的一个文档是这样写,原文的出处无法确认了 基本要点 · 不能导致手机故障(比如崩溃或屏幕问题) · 长时间/过度使用之后反应仍然很快 · 应 ...
- DataGridView隔行显示不同的颜色
如果该dataGridView是跟数据库绑定的,则可以触发DataBindingComplete事件: 1private void dataGridView1_DataBindingCo ...
- 将Sql Server迁移到Always on集群 - 账号的同步
Always on环境的建立,网上资料很多,主要是windows集群的建立以及Sql Server Always on的建立,略 容易忽略的是Sql server账号同步问题(Always on能实现 ...
