-
-
Notifications
You must be signed in to change notification settings - Fork 80
1.0.0 版本升级改动
musicode edited this page Jul 12, 2019
·
22 revisions
- 删除
Yox.is.primitive
方法 -
Yox.Event
构造函数签名改为(type, originalEvent)
-
Yox.string.camelCase
改为Yox.string.camelize
-
Yox.object.extend(a, b, c, d)
改为Yox.object.extend(a, b)
- 删除
Yox.dom.isElement
和Yox.dom.children
-
Yox.dom.before(parentNode, node, referenceNode)
中的referenceNode
改成必传 -
Yox.dom.setProp
改为Yox.dom.prop
-
Yox.dom.setAttr
改为Yox.dom.attr
- 删除
Yox
实例的watchOnce
方法 - 事件对象
event.type
不再包含命名空间,命名空间设值给了event.ns
属性 -
表达式
和模板
语法增强了校验,具体可查看运行时的报错或警告信息
立即执行监听函数,由从前的 sync
改为了 immediate
,虽然这个单词不好记,但没办法,它就是更规范一些。
before
{
watchers: {
title: {
sync: true,
watcher: function () {
}
}
}
}
after
{
watchers: {
title: {
immediate: true,
watcher: function () {
}
}
}
}
如果你用的是 yox.watch('keypath', function, true)
,则无需任何改动。
before
Yox.dom.specialEvents.name = {
on: function () {},
off: function () {}
}
after
Yox.dom.addSpecialEvent('name', {
on: function () {},
off: function () {}
})
不再支持重写 checkPropTypes
函数,为了以后的 yox 生态考虑,数据校验最好是统一的,如果每个人都重写就意味着这个功能不可用。
改动详情可参考 文档
新版重新设计了自定义指令,详情参考文档
本质上,lazy
不是指令,而是指令的辅助。
lazy
有两种值,一种是 true
,一般用于 model
指令,表示输入框在失焦时触发变化。一种是大于 0 的数字,表示延时多久,这个一般取决于指令的实现方。
Yox.directive({
name: {
bind: function (node, directive, vnode) {
// vnode.lazy 是一个对象,拥有当前节点上的所有 lazy 配置
}
}
})
比如,我们可以为每个事件分别设置延时。
<input
type="text"
model="value"
on-click="click()"
on-mousedown="mousedown()"
on-mouseup="mouseup()"
lazy-model="100"
lazy-click="200"
lazy-mousedown="300"
lazy-mouseup
lazy="999"
/>
input
节点的 lazy
格式如下:
{
model: 100,
click: 200,
mousedown: 300,
mouseup: true,
'': 999
}
内置指令怎么使用 lazy
可查看源码,逻辑很简单:event, model。
自定义指令怎么使用 lazy
?那就看你咯!