JS Frameworkcss
JS Framework在初始化阶段被原生JavaScript引擎运行. 它提供被每一个JS Bundle调用的 define() 和 bootstrap() 函数. 一旦JS Bundle从服务器下载后,这些函数就会执行. define() 函数以注册模块;bootstrap()会编译主要的模块为虚拟DOM,并发送渲染指令给Native .html
JS 和 Native 的沟通主要经过两个关键方法进行:node
Weex 渲染流程git
在Weex HTML5环境下 CSS 布局 and 更新视窗 由浏览器引擎(例如webkit)实现.github
你的app必须连接下面的frameworks/dylibsweb
Bootstrapbootstrap
除了其默认的意义,<script>标签支持在页面的顶级组件中经过 type 属性定义两种配置。数组
<script type="data">浏览器
/* (可选) 定义初始化数据 */服务器
</script>
<script type="config">
/* (可选) 定义配置项 */
</script>
style
为元素定义行内样式。
<div style="width: 200px; height: 200px; color: #ff0000;"></div>
<div style="padding: {{x}}; margin: 0"></div>
class
为元素定义一个或多个类名(引用样式表中的类)。
<div class="button"></div>
<div class="button {{btnStatus}}"></div>
Appear 事件
若是一个位于某个可滚动区域内的组件被绑定了 appear 事件,那么当这个组件的状态变为在屏幕上可见时,该事件将被触发。
事件对象
Disappear 事件
若是一个位于某个可滚动区域内的组件被绑定了 disappear 事件,那么当这个组件被滑出屏幕变为不可见状态时,该事件将被触发。
事件对象
Page 事件
注意:仅支持 iOS 和 Android,H5 暂不支持。
Weex 经过 viewappear 和 viewdisappear 事件提供了简单的页面状态管理能力。
viewappear 事件会在页面就要显示或配置的任何页面动画被执行前触发,例如,当调用 navigator 模块的 push 方法时,该事件将会在打开新页面时被触发。viewdisappear 事件会在页面就要关闭时被触发。
与组件的 appear 和 disappear 事件不一样的是,viewappear 和 viewdisappear 事件关注的是整个页面的状态,因此它们必须绑定到页面的根元素上。
特殊状况下,这两个事件也能被绑定到非根元素的body组件上,例如wxc-navpage组件。
事件对象
<content>
<content> 在编写组件模板时做为做为内容节点元素存在,使用时将被真正的元素替换。
替代写法: <slot>。
<div> 组件是用于包装其它组件的最基本容器。支持全部的通用样式、特性、flexbox 布局。其相似于 HTML 的 <div> 容器,但不能直接在里面添加文本(字符串),若是要展现文本,应该使用 <text> 组件。历史版本中,<div> 别名是 <container>,目前已经弃用。
事件
<div> 支持全部通用事件:
查看 通用事件
子组件
支持任意类型的 Weex 组件做为其子组件。 其中,还支持如下两个特殊组件做为子组件:
扩展
scrollToElement(node, options)
滚动到列表某个指定项是常见需求,<list> 拓展了该功能支持滚动到指定 <cell>。经过 dom module 访问,更多信息可参考 dom module 。
ViewModel APIs
ViewModel Options
示例:
module.exports = {
data: function () {
return {
x: 1,
y: 2
}
}
methods: {
foo: function () {
console.log('foo')
}
},
computed: {
z: function () {
return this.x + this.y
}
},
events: {
custom: function (e) {
console.log(e)
}
},
init: function () {},
created: function () {},
ready: function () {}
}
在咱们开发组件是,一个最佳实践是不要在根元素中添加数据绑定,由于当其余组件引用这个组件时,可能会定义相同命名的数据,形成串扰。这就是咱们为何咱们会把 dialog 包裹在一个没有任何特性的 div 中。