kissy modularization part1

Post on 12-Sep-2014

672 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

KISSY Modularizationpart 1

yiminghe@gmail.com

理论基础

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

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

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

• 方便多人协作

传统的前端模块化

• page.html

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

</html>

问题

• 线性结构,不符合直观

• css html javascript 互不相关

线性结构

模块1 模块2 模块3

理想的模块

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

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

树状结构

main

模块1

模块3 模块4

模块2

模块3

• KISSY Modularization

KISSY 模块化方案

• css + js + template = KISSY module

• package = modules

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

• http://localhost:8111/

• API

主要 api

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

• amd

• cmd

主要 api

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

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

• 环境配置– KISSY.config()

环境配置的一些参数

• KISSY.config– combine 优化相关

– alias 别名机制

– lang 全球化

– packages 包配置• name 包名

• path 包路径

• charset 文件编码

• template

template

• xtemplate

template module

compile

compile

• nodejs

• kissy-xtemplate -w –p src/

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

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

compiled template

• xx-tpl.html

• kissy-xtemplate –p ./

• xx-tpl.js

use compiled template

• conditional loader

conditional loader

• compatible(ie) module

conditional loader

• Touch modules

• gallery

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

• Just use it!

Mini?

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

– http://m.kissyui.com/

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

未来的生态圈

loader

kissy

• Dom

• Event

• Base

• xtemplate

• Components

• …

Mini

• Dom

• Event

• Anim

• Io

• …

Gallery

• uploader

• Kcharts

• Slide

• Layer-anim

• auth

• …

• nodejs

nodejs

• npm install kissy@1.4.1-5

• var S = require(‘kissy’)

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’)

thanks

• 下节– 模块加载优化

top related