Transcript
Page 1: kissy modularization part1

KISSY Modularizationpart 1

[email protected]

Page 2: kissy modularization part1

理论基础

• 模块是一致紧密相连的程序单元

• 模块提供功能,并描述自身所依赖的模块

• 模块具备高内聚,低耦合的特性

• 方便多人协作

Page 3: kissy modularization part1

传统的前端模块化

• page.html

• <html><link ref=‘stylesheet’/><link ref=‘stylesheet’/><div></div><div></div><script></script><script></script>

</html>

Page 4: kissy modularization part1

问题

• 线性结构,不符合直观

• css html javascript 互不相关

Page 5: kissy modularization part1

线性结构

模块1 模块2 模块3

Page 6: kissy modularization part1

理想的模块

• 树状结构,模块可依赖多个其他模块

• 一个模块包括 html css javascript 三部分,也就是内聚的意思

Page 7: kissy modularization part1

树状结构

main

模块1

模块3 模块4

模块2

模块3

Page 8: kissy modularization part1

• KISSY Modularization

Page 9: kissy modularization part1

KISSY 模块化方案

• css + js + template = KISSY module

• package = modules

• 示例: https://github.com/yiminghe/kissy-boilerplate

• http://localhost:8111/

Page 10: kissy modularization part1

• API

Page 11: kissy modularization part1

主要 api

• KISSY.add(function)– 定义模块

• amd

• cmd

Page 12: kissy modularization part1

主要 api

• 使用模块– KISSY.use(modules, function)

– KISSY.use(modules, {success, error})

• 环境配置– KISSY.config()

Page 13: kissy modularization part1

环境配置的一些参数

• KISSY.config– combine 优化相关

– alias 别名机制

– lang 全球化

– packages 包配置• name 包名

• path 包路径

• charset 文件编码

Page 14: kissy modularization part1

• template

Page 15: kissy modularization part1

template

• xtemplate

template module

compile

Page 16: kissy modularization part1

compile

• nodejs

• kissy-xtemplate -w –p src/

– src 下的 xx-tpl.html => xx-tpl.js (compiled function)

– 业务模块 require(‘./xx-tpl’)

Page 17: kissy modularization part1

compiled template

• xx-tpl.html

• kissy-xtemplate –p ./

• xx-tpl.js

Page 18: kissy modularization part1

use compiled template

Page 19: kissy modularization part1

• conditional loader

Page 20: kissy modularization part1

conditional loader

• compatible(ie) module

Page 21: kissy modularization part1

conditional loader

• Touch modules

Page 22: kissy modularization part1

• gallery

Page 23: kissy modularization part1

• KISSY.use(‘gallery/xx/ver/’)

• Just use it!

Page 24: kissy modularization part1

Mini?

• API 简化版面向于浏览型 web page

– http://m.kissyui.com/

– http://g.assets.daily.taobao.net/kissy/m/0.1.1/mini.js

Page 25: kissy modularization part1

未来的生态圈

loader

kissy

• Dom

• Event

• Base

• xtemplate

• Components

• …

Mini

• Dom

• Event

• Anim

• Io

• …

Gallery

• uploader

• Kcharts

• Slide

• Layer-anim

• auth

• …

Page 26: kissy modularization part1

• nodejs

Page 27: kissy modularization part1

nodejs

• npm install [email protected]

• var S = require(‘kissy’)

Page 28: kissy modularization part1

kissy modules on nodejs

• asynchronous– S.use(modules, function)

• synchronous– Like require on nodejs

– S.use(modules, {success:function, sync:true})

• KISSY 1.5 next– require(‘kissy/lib/xtemplate’)

Page 29: kissy modularization part1

thanks

• 下节– 模块加载优化


Top Related