zoukankan      html  css  js  c++  java
  • 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库layerUIposhytip

    演示

    Turtle Online演示

    源码下载

    oschina-开源中国

    成功案例

    一、使用方法

    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框架运行图

  • 相关阅读:
    2013年10月17日 搬出来了
    如何与领导相处
    WEB系统开发
    C++ 常用术语(后续补充)
    C++ 构造函数放置默认转换explicit关键字(2)
    工作与生活
    C++类型转化分析(1)
    (一)win7下cocos2d-x 21 + vs2010
    为了生活
    iOS
  • 原文地址:https://www.cnblogs.com/yinluhui0229/p/6074807.html
Copyright © 2011-2022 走看看