amazeui中css组件、js组件、web组件的区别
amazeui中css组件、js组件、web组件的区别
一、总结
一句话总结:
1、可直接像调用js插件那样调用:在AmazeUI(妹子UI)中,Web组件可以不编写模板而直接使用,若如此,则与JS插件没什么太大区别,官方原话也说可以这么调用的。
2、能编写自定义模板通过js代码调用:Web组件与JS插件的不同之处在于,Web组件借助 handlebars.js 实现了强大的模板功能,我们能编写自定义模板从而使Web组件更具个性,甚至是编写出新的Web组件。
二、amazeui中css组件、js组件、web组件的区别
AmazeUI(妹子UI)是非常优秀的国产前端UI,现在来介绍一下AmazeUI中CSS组件、JS插件与Web组件的区别。
CSS组件顾名思义就是仅使用CSS渲染而成的组件,而JS插件也很容易理解,就是由CSS渲染和JS来控制行为的组件。
比较不好理解就是Web组件,好像跟JS插件意思差不多,都是CSS和JS组成的。它们到底区别在哪?我们重点来讲这个。
我们通过学习如何调用Web组件(其中的手风琴组件)来一步一步了解其与JS插件的区别。
示例01.Web组件-直接使用 (请下载附件查看示例)
<section data-am-widget="accordion" class="am-accordion am-accordion-default">
<!-- 这里面还有代码,本例的大概意思就是不写JS代码,直接调用Web组件。 -->
</section>
示例02.Web组件-通过模板来调用-示例1 (请下载附件查看示例)
<!-- handlebars.js 是一个开源的js库,用于在网页上实现语义模板。 -->
<script src="assets/js/handlebars.min.js"></script>
<!-- 妹子UI调用 handlebars 的辅助类 -->
<script src="assets/js/amazeui.widgets.helper.js"></script>
示例中关键代码2(定义一个模板)(话说这个模板也没啥实际意义,但官方的demo就是这么写的,我只是移植了一下):
<script type="text/x-handlebars-template" id="my-tpl">
{{>accordion accordionData}}
</script>
示例中关键代码3(调用JS代码使其工作):
var $tpl = $('#my-tpl'); //得到原始模板
var template = Handlebars.compile($tpl.text()), //得到编译后的模板
//...这里定义了数据...代码较多...略...
var html = template(data); //传入数据,运行模板,得到结果
var $tpl.before(html); //显示结果
示例03.Web组件-通过模板来调用-示例2 (请下载附件查看示例)
var template = Handlebars.compile('{{>accordion}}'), //得到编译后的模板 (字符串就算是原始模板了)
var html = template(data.accordionData); //传入数据,运行模板,得到结果
$("#div1").before(html); //显示结果
示例04.Web组件-通过自定义模板来调用 (请下载附件查看示例)
<!-- 自定义原始模板 -->
<script type="text/x-handlebars-template" id="demo-template">
//这里还有很多代码,因为不关键就省略了...
<!-- 关键代码:添加图标 icon 属性 -->
{{#if icon}}<img src="{{icon}}" style="width:20px;" />{{/if}}
//这里还有很多代码,因为不关键就省略了...
</script>
示例中关键代码3(调用JS使其工作):
var demoData = { //定义数据
"content": [..省略.., {
"title": "标题二",
"content": "内容二",
"icon": "assets/i/favicon.png" //关键:多出一个icon属性
}, ..省略..]
};
var demoTemplate = Handlebars.compile($("#demo-template").html()); //得到编译后的模板
var demoHtml = demoTemplate(demoData); //传入数据,运行模板,得到结果
$("#div1").html(demoHtml); //显示结果
示例05.Web组件-华瑞手风琴组件 (请下载附件查看示例)
//注册一个新组件,名叫:hr-accordion
hbs.registerPartial('hr-accordion', '\
{{#this}}\
<section data-am-widget="accordion" class="am-accordion {{#if theme}}am-accordion-{{theme}}{{else}}am-accordion-default{{/if}}{{#if widgetId}} {{widgetId}}{{/if}}{{#if className}} {{className}}{{/if}}" {{#if id}} id="{{id}}" {{/if}} data-am-accordion=\'{ {{#if options.multiple}}"multiple": true{{/if}} }\'>\
{{#each content}}\
<dl class="am-accordion-item{{#if active}} am-active{{/if}}{{#if disabled}} am-disabled{{/if}}">\
<dt class="am-accordion-title" style="color:#0094ff;">\
<!-- 添加图标的关键代码 -->\
{{#if icon}}<img src="{{icon}}" style="width:20px;" />{{/if}}\
{{{title}}}\
</dt>\
<dd class="am-accordion-bd am-collapse {{#if active}}am-in{{/if}}">\
<div class="am-accordion-content">\
{{{content}}}\
</div>\
</dd>\
</dl>\
{{/each}}\
</section>\
{{/this}}');
示例中关键代码2(引用相关js文件):
<!-- handlebars.js 是一个开源的js库,用于在网页上实现语义模板。 -->
<script src="assets/js/handlebars.min.js"></script>
<!-- 华瑞手风琴组件,调用 handlebars.js 的辅助类 -->
<script src="assets/js/huarui.accordion.helper.js"></script>
示例中关键代码3(调用JS使其工作):
var demoData = { //定义数据
"content": [..略.., {
"title": "标题二",
"content": "内容二",
"icon": "assets/i/favicon.png" //关键:多出一个icon属性
}, ..略..]
};
//得到编译后的模板,传入数据,运行模板,得到结果
var demoHtml = Handlebars.compile('{{>hr-accordion}}')(demoData);
$("#div1").html(demoHtml); //显示结果
看完以上的示例,得出结论:
amazeui中css组件、js组件、web组件的区别的更多相关文章
- 20170305深圳Meetup Rails中CSS,JS引用关系分析
新手上路,若有错误请及时提醒 Rails中CSS,JS引用关系分析 一.Rails静态文件存放位置 二.Rails中CSS引用方式 三.Rails中JS引用方式与CSS类似 四.上面都是默认引用app ...
- RSuite 一个基于 React.js 的 Web 组件库
RSuite http://rsuite.github.io RSuite 是一个基于 React.js 开发的 Web 组件库,参考 Bootstrap 设计,提供其中常用组件,支持响应式布局. 我 ...
- struts2中css,js等资源无效 非路径问题(新手问题)
一个小小的Strust2例子 然后发现css,js,图片用不了,debugger下发现无法访问这些资源(404错误),妈的,那个例子明明可以的,起码从书上的图片看. 发现是web.xml中的过滤器的问 ...
- HTML中css和js链接中的版本号
背景 在搜索引擎中搜索关键字.htaccess 缓存,你可以搜索到很多关于设置网站文件缓存的教程,通过设置可以将css.js等不太经常更新的文件缓存在浏览器端,这样访客每次访问你的网站的时候, 浏览器 ...
- 在Asp.Net MVC 中如何用JS访问Web.Config中appSettings的值
应用场景: 很多时候我们要在Web.Config中添加appSettings的键值对来标识一些全局的信息,比如:调用service的domain,跳转其他网站页面的url 等等: 那么此时就涉及到了一 ...
- AmazeUI(妹子UI)中CSS组件、JS插件、Web组件的区别
AmazeUI(妹子UI)是非常优秀的国产前端UI,现在来介绍一下AmazeUI中CSS组件.JS插件与Web组件的区别. CSS组件顾名思义就是仅使用CSS渲染而成的组件,而JS插件也很容易理解,就 ...
- amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules
amazeui学习笔记二(进阶开发5)--Web 组件开发规范Rules 一.总结 1.见名知意:见那些class名字知意,见函数名知意,见文件名知意 例如(HISTORY.md Web 组件更新历史 ...
- 学习React系列(七)——Fragments、Portals、Error Boundaries与WEB组件
React.Fragment portals Error Boundaries WEB组件 React.Fragment 想象一个场景,想把td包装为组件添加到table中去,代码如下: class ...
- PHP分帧后台模板页面css样式,js引入方法
一,首先把下载好的分帧后台模板放到对应的目录中,HTML显示页面放到View目录中,CSS和JS.img图片等公共资源放到include目录中 二.然后开始准备更改CSS和JS , img路径操作:( ...
随机推荐
- android-5.1编译配置(van)
必备文件: archives1211.tgz ubuntu_install_1204.tgz 安装指引: ubuntu_install_1204/readme.txt 工作目录结构: git ├── ...
- Visual Studio Team Services持续集成到Github仓库
Devops如何用VSTS持续集成到Github仓库! 工欲善其事,必先利其器.在开始正式的教程之前我们先来聊聊准备工作. 管理工具会VSTS. 代码管理会用GITHUB. 服务器会用Azure. ...
- 1.13 Python基础知识 - 字典和集合
一.字典 字典是一组键-值对的数据结构.每个键对应一个值.在字典中,键不能重复.根据键可以查询到值.字典是键和值的映射关系 字典的定义: 字典通过花括号中用逗号分隔的元素(键-值.键-值对使用冒号分隔 ...
- session 、cookie、token的区别及联系
本文转自:https://blog.csdn.net/jikeehuang/article/details/51488020:https://blog.csdn.net/weixin_37196194 ...
- MYSQL添加远程用户或允许远程访问三种方法
添加远程用户admin密码为password GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY \'password\' WIT ...
- iOS开发RunLoop学习:一:RunLoop简单介绍
一:RunLoop的简单介绍 #import "ViewController.h" @interface ViewController () @end @implementatio ...
- (转)把Sublime Text 2 加入右键菜单(带图标),Edit with Sublime Text
转自 http://www.turen.me/archives/509 Sublime Text 2 是现在很受大家欢迎的编辑器了,不仅是在web前端,在书定简单的php.Js等代码时,也是相当的好用 ...
- Codeforces Round #315 (Div. 2) (ABCD题解)
比赛链接:http://codeforces.com/contest/569 A. Music time limit per test:2 seconds memory limit per test: ...
- hadoop容灾能力测试 分类: A1_HADOOP 2015-03-02 09:38 291人阅读 评论(0) 收藏
实验简单来讲就是 1. put 一个600M文件,分散3个replica x 9个block 共18个blocks到4个datanode 2. 我关掉了两个datanode,使得大部分的block只在 ...
- windows下perl使用
windows下perl使用 windows下perl开发工具 Perl 的官方网址提供下载的windows perl开发环境 ActiveState Perl Strawberry Perl DWI ...