KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架。

具备模块化、高扩展性、组件齐全,接口一致、自主开发、适合多种应用场景等特性。

在以下方面具有一定优势:

  • A、拥有大量的中文文档;
  • B、在国内具备一定的社区规模;
  • C、开发便捷;
  • D、综合借鉴国际先进的框架类库设计;
  • E、应用场景广泛。

下载引入

KISSY 1.3.0

KISSY seed 1.3.0

引入方式有两种:

  • 1、核心全部加载引入完整的 KISSY
  • 2、按需加载模块引入 seed

引入完整的 KISSY

引入完整的 KISSY 会直接加载全部的 KISSY 核心模块

包括 dom,event,node,base,ajax 等

如果你下载了源码,直接引入 kissy-min.js

<script src="kissy-min.js"></script>

如果你没下载源码,可以引用淘宝 cdn 上的地址

<script src="http://a.tbcdn.cn/s/kissy/1.3.0/kissy-min.js"></script>

操作元素

KISSY 使用了类似 jQuery 的链式操作

只需定义

var $ = KISSY.all

就可以进行如下操作

//Line 126: 获取图片列表元素
var imgList = $('.img-list').all('li');
//Line 132: 所有图片元素移除'active'类名
this.imgList.removeClass('active'); //Line 133: 给第next个图片元素添加'active'类名
this.imgList.item(next).addClass('active');

链式操作

//Line 151
var cloneItem = selectedItem.one('img')
.clone() //复制选中的元素
.appendTo('.content') //添加到容器最后
.css({
'width': '100px',
'height': '100px'}) //设置样式
.animate({
'top': 100
}, 0.2, 'easeOut') //添加一个动画
.animate({
'top': 200
'left': 200
}, 1, 'bounceOut', function(){
...
}) //另一个动画

绑定事件

KISSY 中的事件绑定非常简单

通过一个 on 操作就能完成事件绑定

//Line 178
$('button').on('click', function(ev){
//do something
})

Ajax

KISSY 中对 Ajax 操作进行了一些封装,比如要发起一个 GET 请求

//Line 170
IO.get('./server.php', {'index': index}, function(data){
$('.detail').html('<img src="' + data.url + '" />').fadeIn(0.5);
}, 'json')

上述参数分别代表请求地址,发送数据,回调函数,返回数据格式

整体架构

介绍 seed 引入之前,先了解一下 KISSY 整体架构图

1、最底层的 seed 是类似目前流行的 AMD 模块化机制实现。

2、第二层是处理 dom 兼容性的核心模块,每个模块由更小的模块打包合并而来。

3、第三层为组件架构层。

4、第四层为独立可用的 KISSY 组件。

5、最外层为 KISSY gallery,KISSY 社区开发的一些通用模块。

引入 seed

通过 seed 的方式可以实现模块的按需加载

引入 seed 也有两种方式

<script src="seed-min.js"></script>

或者

<script src="http://a.tbcdn.cn/s/kissy/1.3.0/seed-min.js"></script>

loader

首先需要新建一个模块

KISSY.add(function(S, N, E, A, IO){
var $ = S.all;
var opLotto = {
init: function(){
...
},
...
}
return opLotto;
}, {requires: ['node', 'event', 'anim', 'ajax']});

模块其实就是一个对象,模块名可以忽略,我们会返回这个对象以便在使用模块时方便调用,最后是依赖配置

我们把这个模块保存为 opLotto.js,放在同目录的 module 文件夹下

在加载模块前,我们需要在主页面中对 KISSY 进行一下包配置

KISSY.config({
packages: [
{
name: "module",
tag: "20130618",
path: "./",
charset: "gbk"
}
]
});

在这段代码中我们指定了包的路径,包名,时间戳和编码

然后我们就可以这样来使用模块了

KISSY.use('module/opLotto, node, event', function(S, OP, N, E){
S.ready(function(S){
var $ = S.all;
OP.init();
...
});
})

component

KISSY 内置了很多有用的组件

比如 button,calendar,datalazyload,overlay,switchable

这些组件的用法非常简单,比如要用到 button 组件,只需要:

KISSY.use("button", function(S, Button) {
var btn = new Button({
content: "我是按钮1",
render: "#button_container",
tooltip: "hover时显示"
});
btn.render();
})

gallery

gallery 是社区贡献的组件集合,汇集了各种各样的功能

比如 kcharts,imgcrop,waterfallx,slide,uploader

gallery 鼓励分享,任何人都可以为 gallery 提交自己的组件

在 KISSY 1.3.0 中内置了 gallery package,使用 gallery 组件非常方便

KISSY.use('gallery/offline/1.0/index', function (S, Offline) {
var offline = new Offline();
...
})

其他

KISSY Module Compiler 使用说明

是一个模块依赖自动抽取合并工具,结合 KISSY Loader,在模块代码部署阶段,可以将多个模块根据其依赖合并为一个文件,减少 HTTP 链接数

或者通过在 KISSY.config 中设置开启自动 combo 模式减少链接数

关于

讨论旺旺群:29676575

google group:kissy-ui

邮箱:kissyteam@gmail.com

项目主页:github - kissy

 

 

Disqus seems to be taking longer than usual. Reload?

淘宝自己的前端框架KISSY(类似jquery) - 简易指南的更多相关文章

  1. 仿淘宝颜色属性选择展示代码(jQuery)

    模仿淘宝商品选择颜色和尺寸的效果,即选择商品颜色和尺寸的时候,把选择的颜色和尺寸放到一个页面容器里面,不足之处,还望指教. <!DOCTYPE HTML> <html lang=&q ...

  2. 【转】淘宝技术牛p博客整理

    转自:http://blog.csdn.NET/zdp072/article/details/19574793 淘宝技术委员会是由淘宝技术部高级技术人员组成的一个组织,共分为Java分会.C/C++分 ...

  3. jquery仿淘宝规格颜色选择效果

    jquery实现的仿淘宝规格颜色选择效果源代码如下 jquery仿淘宝规格颜色选择效果 -收缩HTML代码 运行代码 [如果运行无效果,请自行将源代码保存为html文件运行] <script t ...

  4. [KISSY5系列]淘宝全终端框架 KISSY 5--从零开始使用

    KISSY 是淘宝一个开源的 JavaScript 库,包含的组件有:日历.图片放大镜.卡片切换.弹出窗口.输入建议等 一.简介 KISSY 是一款跨终端.模块化.高性能.使用简单的 JavaScri ...

  5. 淘宝的前端类库-KISSY

    KISSY(淘宝) KISSY是淘宝的前端类库,几乎在淘宝的每个页面上都能看到它的身影. KISSY提供稳定的核心,包括 oo.dom.Event.Anim.Ajax 等:强大且易用的脚本加载器,特有 ...

  6. 淘宝前端工程师:国内WEB前端开发十日谈

    一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是" ...

  7. Mvc利用淘宝Kissy uploader实现图片批量上传附带瀑布流的照片墙

    前言 KISSY 是由阿里集团前端工程师们发起创建的一个开源 JS 框架.它具备模块化.高扩展性.组件齐全,接口一致.自主开发.适合多种应用场景等特性.本人在一次项目中层使用这个uploader组件. ...

  8. 手机淘宝中的那些Web技术-使用了类似PhoneGap的实现

    Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新.但是如何保证Web APP的流畅 ...

  9. 淘宝、天猫又开源了一个动态化、高性能的UI框架

    前言 淘宝.天猫一直致力于解决 页面动态化的问题 在2017年的4月发布了v1.0解决方案:Tangram模型 及其对应的 Android库 vlayout,该解决方案在手机淘宝.天猫 Android ...

随机推荐

  1. css3 巧用结构性伪类选择器

    最近在国外的一个网站上看到的一个关于结构性伪类选择器的用法,觉得十分实用,就自己尝试了一下,并把它给记录下来: 这是最基本的样式: <style type="text/css" ...

  2. SQL表连接查询

    SQL表连接查询(inner join.full join.left join.right join) 表的数据有: 一.内连接-inner jion : 最常见的连接查询可能是这样,查出学生的名字和 ...

  3. mysql中文乱码的一点理解

    我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B. 如果你也遇到了这个问题,咱 ...

  4. Android 异常捕获

    在用户使用APP时,如果APP毫无征兆的突然退出程序,又没有任何提示信息.我想这是一种最差劲的用户体验了吧,如果是我估计干脆就直接卸载APP了.因此,作为Android开发者对于这种情况的发生一定要有 ...

  5. Servlet之创建与配置

    上篇已将介绍完了,下面来实践操作走一个: 首先在名为"com.caiduping"的包中创一个MyFilter的对象: 1 package com.caiduping; 2 3 i ...

  6. 第四十二篇、自定义Log打印

    1.在Xcode 8出来之后,需要我们去关闭多余的日志信息打印 2.在开发的过程中,打印调试日志是一项比不可少的工程,但是在iOS 10中NSLog打印日志被屏蔽了,就不得不使用自定义Log 3.去掉 ...

  7. Swift常量和变量以及命名规范

    我们在上一章中介绍了如何使用Swift编写一个HelloWorld小程序,其中就用到了变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字let,就可以把该变 ...

  8. 博客迁到CSDN

    之前一直是博客园和CSDN博客同步更新 现在不在博客园继续写博客,十一国庆节假后只用CSDN博客了.祝各位访客国庆节快乐! CSDN博客地址: http://blog.csdn.net/it_liuc ...

  9. 转:Android 2.3 代码混淆proguard技术介绍

    ProGuard简介 ProGuard是一个SourceForge上非常知名的开源项目.官网网址是:http://proguard.sourceforge.net/. Java的字节码一般是非常容易反 ...

  10. Java-IO 输入输出流详解

    一.文件的编码               开发时一定要注意项目默认的编码!!!!!!!!               文件操作的时候一定要记得关闭!!!!!!!!        ASCII:美国标准 ...