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打造超酷炫火焰人像效果
效果图看上去非常的酷.制作方法跟火焰字过程差不多.唯一不同的是前期的处理,需要用滤镜把人物轮廓路径找出来,去色后再用制作火焰的过程制作.最后把最好的火焰叠加到人物上面,适当用蒙版控制区域即可.原图 最 ...
随机推荐
- Java-基础练习2
1.利用文本编辑器输入课堂上练习的Hello.java,并在JDK环境下编译和运行.请将程序编译.运行的结果截图,填入下框中. class Hello{ public static void main ...
- Abstract Server模式,Adapter模式和Bridge模式
简易的台灯 Abstract Server模式 谁拥有接口. 接口属于它的客户,而不是它的派生类. 接口和客户之间的逻辑关系,强于接口和其派生类的逻辑关系. 逻辑关系和实体关系的强度是不一致的.在实体 ...
- Spark安装指南
一.Windows环境安装Spark 1.安装Java环境:jdk-8u101-windows-x64 配置环境变量: (1)增加变量名:JAVA_HOME 变量值:C:\Program File ...
- mysql组合索引与字段顺序
很多时候,我们在mysql中创建了索引,但是某些查询还是很慢,根本就没有使用到索引!一般来说,可能是某些字段没有创建索引,或者是组合索引中字段的顺序与查询语句中字段的顺序不符. 看下面的例子:假设有一 ...
- SQL Server 内存中OLTP内部机制概述(二)
----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<SQL Server In-Memory ...
- Ruby on Rails框架开发学习
学习地址:http://www.ixueyun.com/lessons/detail-lessonId-685.html 一.课程概述 软件开发在经历了面向过程编程的阶段,现在正大行其道的是敏捷开发, ...
- NoteExpress 自定义参考文献输出样式
最近在写硕士论文,样式中没有符合要求的,于是就自己来编辑下样式文件,下文是网上搜集的关于自定义参考文献的一篇教程,可以参考. 一.分隔符|和连接符*的使用 (1)连接符 * 主要作用是“建立依赖关系” ...
- [leetcode] Min Stack @ Python
原题地址:https://oj.leetcode.com/problems/min-stack/ 解题思路:开辟两个栈,一个栈是普通的栈,一个栈用来维护最小值的队列. 代码: class MinSta ...
- 当创业遇上O2O,新一批死亡名单,看完震惊了!
当创业遇上O2O,故事就开始了,总投入1.6亿.半年开7家便利店.会员猛增至10万……2015半年过去后,很多故事在后面变成了一场创业“事故”,是模式错误还是烧钱过度?这些项目的失败能给国内创业者带来 ...
- Android Studio如何引用外部Library工程
参考: http://stackoverflow.com/questions/16588064/how-do-i-add-a-library-project-to-the-android-stu ...
