dojo总结
Dojo相关:
1.dijit/_Templated在dojo2.0即将弃用。
2.map可以映射资源,将原有资源路径以新标识符代替。
3.文档中建议parseOnLoad为false,采用parse模块下的parse()方法代替。
4.cacheBust:true。向每个模块URL附加时间作为查询字符串以避免模块缓存。
5.packages:[{name:'test',location:''}]凡是匹配到test路径的资源名,都从本地路径寻找。
6.有些依赖包只是为了运用它的副作用,并无实际操作,如domReady,
此类依赖可以放在数组尾部,回调参数不用提供。
7.define注册模块,require引入模块。
define注意我们定义的模块是一个对象的引用,不是一个构造函数,也就是说加载这个 模块的每一块代码引用的都是绝对相同的对象。
通常,模块应该返回构造函 数,不过在某些情况下也可适当返回一个单独的对象。
8.dojo插件新型模块,在模块标识符的末尾使用一个特殊符号“!”来标识它是一个插件请 求:
dojo/text 、 dojo/i18n 、 dojo/has 、和 dojo/domReady。
9.Dom
dom.byId();
dojo/dom-construct 的 create()
domConstruct.create 参数如下:节点名称字符串,节点属性对象,可选的父节 点或兄弟节点,相对父节点和兄弟节点的一个可选的位置(默认为“last”),它返回 一个新的DOM元素节点.
domConstruct.place 。参 数如下:用来放置的DOM节点或者节点的字符串ID、一个作为引用的DOM节点或 者节点的字符串ID、可选的位置字符串默认为“last”。
domConstruct.destroy 会销毁节点和它所有的子节 点, domConstruct.empty 将销毁给出的节点的子节点
dojo/query 模块使用类CSS查询(你在样式表里使用的) 来检索一个节点列表,它也支持高级的CSS3选择器
dojo/mouse鼠标事件
dojo/dom-style样式方法
可以使用 lang.hitch (来自 dojo/_base/lang 模块)来指定运 行处理器的上下文,就是绑定this。
dojo/keys键盘事件
我们利用Dojo 的 dojo/_base/fx 和 dojo/fx 可以对这些特效进行连接和组合,进而提供一些真正炫酷的动态体验,动画必须play()执行;
两个常用的重要事件处理器是 beforeBegin 和 onEnd
wipeIn,wipeOut擦拭,改变节点高度,如下拉;
fade...淡入淡出
slideTo滑动
fx.chain 一个接一个播放动画
fx.combine同时开启多个动画
baseFx.animateProperty动画属性
dojo/fx/easing一些曲线动画
NodeList扩展,很多都等同于jQuery的方法。
dojo/NodeList-traverse 模块为NodeList添加的方法可以让你轻易的在DOM上 查找引用节点的父节点、兄弟节点和子节点。
dojo/NodeList-manipulate 扩展模块通过在 NodeList 里添加一些操作节点的 方法补充了遍历模块。
dojo/NodeList-html 就是html()
10.Dojo
dojo/request 是一个新的从客户端向服务器发送请求的API
api属性handleAs —— 一个字符串,代表着在将数据传递给成功处理器前,将应答数据转换成哪种载体方式。
可用的格式有“text”(默 认)、“json”、“javascript”和“xml”,这个有些要结合content-type使用。
使用 promise.response.then 时,响应不 是一个data,而是一个带有data属性的对象
dojo/request/notify监听请求过程
dojo/_base/array数组方法
dojo/_base/lang 可以在使用 dojo/_base/declare 时用 lang.mixin 、 lang.extend 和 declare.safeMixin 来扩张对象和原型。
lang.mixin 方法是一个简单的通用函数,可以用任意数量的对象作为参数,把 随后的对象的属性添加到第一个对象上并返回它。
declare.safeMixin它一直只能混入一个对象 它不能混入 constructor 属性它会为函数添加注释便于 declare 的 this.inherited 功能属性正常功能
lang.extend 跟 lang.mixin 非常相似,处理它是给第一个对象 的 prototype 添加属性而不是直接在对象本身添加
所有的混入函数执行浅拷贝
不想要 共享对象的地方,你可以使用一个 lang.clone 进行深拷贝
声明式语法
data-dojo-props 属性来包含需要传递给实例构造器的 配置信息;属性的值是一个JavaScript字面量,只是没有外面 的大括号({})
全局范围里创建它们的引用,dojo/parser 通过 查找 data-dojo-id 属性来实现。它的值将被设在全局范围。
require("dijit/registry")所有的声明式脚本只在它们自己的作用域里运行,为了获取模块的引用它们就得进 入全局作用域。
创建类
dojo/_base/declare 模块是Dojo Toolkit里类创建的基础,declare 接收三个参 数: className 、 superClass 和 properties
className 参数表示要创建的类的名字,包括命名空间。命名的类放在全局作用 域内。 className 也可以通过命名空间表示继承链。
超类的参数可以是 null 、一个已有类或者一个已有类的数组。如果一个新类继承 自多个类,那么列表中的第一个类将作为基本原型,其余的作为“混合”。
多继承时,如果一个属性或方法在多个被继承的类里指定过,则使用 最后一个被继承的该属性或方法
this.inherited(arguments) 调用父类的同名方法
this.inherited 方法在子类代码中任何时候都可以调用。有些情况你会想要在 子函数中间或者末尾调用 inherited() 。
即便如此,你不能在构造器里调用它
dojo/Deferred
异步操作,提供异步交互能力。
hash和router 略
11.Widgets
Digit生命周期:constructor (所有原型共有,实例化时调用) postscript (所有使用 decale 构建的原型共有) creatpostMixInProperties buildRendering postCreate startup
postCreate:它在widget所有的属性定义完成和代表widget的文档片段创建后触发
startup:这个方法用来处理 DOM片段实际添加到文档中之后的过程;它将在所有的子widget被创建和开启之后 才触发
destory:当编写你自己的widget时,任何必须的拆除行为都应该定义在destory方法中。 (不要忘了调用 this.inherited(arguments) !)
12.Store数据存储
修改属性时,要用put()来保存更改