#各框架组件开发调研
##AmazeUI:
###开发规范
目录结构:
    {widget}
    |-- package.json
    |-- README.md
    |-- HISTORY.md
    |-- resources
    |   `-- screenshots
    |       |-- 0.jpg
    |       |-- 1.jpg
    |       `-- 2.jpg
    `-- src
        |-- {widget}.hbs
        |-- {widget}.js
        |-- {widget}.less
        |-- {widget}.default.less
        |-- {widget}.[theme1].less
        |-- {widget}.[themen].less
        `-- {widget}.png
开发工具:
1、开发脚手架构建以上文件。
2、本地调试:所有css文件,js均打包好。watch change
规范:
css、js开发时需要注意命名空间
如js组件:
module.exports = $.AMUI.video = {
  VERSION: '0.0.1',
  init: videoInit
};
##使用方式
1、参数写在标签里。
2、在客户端编译HTML片段:
例:
HTML:
<script type="text/x-handlebars-template" id="amz-tpl">
  
</script>
css:依旧是打包好的
js:
前置js:jquery+amazui.js+handlebars
//打包所有组件的hbs文件成js(字符串)。
<script src="../../dist/js/amazeui.widgets.helper.js"></script>
//初始化部分     
<script>
  $(function() {
    //把HTML里的组件配置拿出来,编译。
    var $tpl = $('#amz-tpl'),
      source = $tpl.text(),
      template = Handlebars.compile(source),
      //把各个组件的参数配置写在这里
      data = {
        video:{
          "options":{
            "isAutoPlay": false
          }
        }
      },
      html = template(data);
     //插入节点
    $tpl.before(html);
    //初始化
    $.each(['video'], function(i, m) {
      var module = $.AMUI[m];
      module && module.init && module.init();
    })
  });
</script>
    如果使用的组件较多或者还有组件以外的自定义模板,建议使用上面的方法,将模板分离出来,便于维护。
3、基本同2 ,直接将组件调用代码传给 Handlebars
var template = Handlebars.compile(''),
    data = {
      video:{
            "options":{
                "isAutoPlay": false
              }
            }
    },
    html = template(data.video);
$('body').append(html);
##比较:
优点:相比现有方式,把组件的HTML+CSS进行了管理。
缺点:组件全部打包,文件大。压缩之后amazeui.min.js为215k,amazeui.widgets.helper为36k。
##React
JSX渲染结构。JS配置。
##Polymer
web Component标准 兼容性差。
##Cardkit
自定义标签,HTML配置组件
##arkui
Basic UI components for Douban Read 只有样式。
    记于2015年04月10日 EOF
  
  
 
    
    点击评论或查看评论。