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打造超酷炫火焰人像效果
效果图看上去非常的酷.制作方法跟火焰字过程差不多.唯一不同的是前期的处理,需要用滤镜把人物轮廓路径找出来,去色后再用制作火焰的过程制作.最后把最好的火焰叠加到人物上面,适当用蒙版控制区域即可.原图 最 ...
随机推荐
- Javascript--练习(包括主界面图片轮播效果)
练习一 例子1:做一个问题,如果输入的答案正确则弹出正确,错误弹出错误: 这里在text里面写了一个daan属性,里面存了答案的值,点击检查答案的时候cheak输入的内容和答案是否一样: Body中代 ...
- 1.__tostring()这个方法在类里可以直接输出对象。2.克隆对象的运用
<?php //__tostring()这个方法在类里的用途 能够直接输出对象 class Ren { public $name; function Run() { echo "跑&q ...
- [jQuery学习系列二 ]2-JQuery学习二-数组操作
前言 上一篇内容 已经对于Jquery 有了一些认识, 包括Jquery的选择器和DOM对象, 那么这一篇继续来看下Jquery中很实用的Jquery对于数组的操作. Jquery中对数组的操作大致有 ...
- document对象操作:浏览器页面文件
//找元素 1.根据id找 <div id="d1" cs="ceshi"><span>document对象</span>& ...
- Sql Server 调用DLL
背景 在处理数据或者分析数据时,我们常常需要加入一定的逻辑,该些处理逻辑有些sql是可以支持,有些逻辑SQL则无能为力,在这种情况下,大多数人都会编写相关的程序来处理成自己想要的数据,但每次处理相同逻 ...
- activemq安装和启动
安装环境:linux redhat activemq版本:5.8.0 1.从http://activemq.apache.org/download.html地址下载apache-activemq-5. ...
- string的+操作与StringBuilder对象
习惯在C#代码中写str+="xxx";这样代码的请注意啦,如果这种操作是针对单个变量作很多次叠加操作的,很有可能导致性能降低. 大家都知道string与StringBuilder ...
- Android 设置VPN(pptp连接方式)
本教程以小米手机的MIUI系统为例子,教大家如何设置VPN 先找到“设置”,打开设置菜单,如下图: 在设置菜单里面找“其它连接方式” 然后找到“VPN”,点击进入: 进入VPN设置界面后,如果VPN未 ...
- 使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
在线演示1 本地下载 申请达人,去除赞助商链接 如果大家喜欢阅读博客文章的话,可能都会使用RSS阅读器,今天这里我们将使用jQuery来开发一个响应式的RSS信息阅读应用,使用它你可以将你喜欢 ...
- Codeforces Round #271 (Div. 2)题解【ABCDEF】
Codeforces Round #271 (Div. 2) A - Keyboard 题意 给你一个字符串,问你这个字符串在键盘的位置往左边挪一位,或者往右边挪一位字符,这个字符串是什么样子 题解 ...
