Native DOM APIsUpdated time: 14/06/2017

Weex 在 JS 引擎中,为每个页面都提供了一套 Native DOM APIs,这套接口和 HTML DOM APIs 非常接近,利用这套接口我们可以通过 JavaScript 控制 native 的渲染逻辑。而且 Weex 上层的 Vue 2.0 也是基于这套接口进行适配的。

绝大多数情况下 JS 框架会把 Native DOM APIs 都封装好,开发者不需要直接对 Native DOM 进行操作。

Document 类,整个页面文档。

Node 类,结点的基础类。

Element 类,元素结点,继承自 Node,单个视图单元。

Comment 类,注释结点,继承自 Node,无实际意义,通常用作占位符。

每个 Weex 页面都有一个 weex.document 对象,该对象就是一个 Document 类的实例,也是下面所有接口调用的起点。

接下来详细介绍它们的用法:

Document 类

每个 Document 实例在创建的时候都会自动拥有一个 documentElement 属性,表示文档结点。该文档结点可以拥有一个 body,即文档的主体结点。

注意事项: 文档的主体结点只接受

、 或 三种类型的元素结点。

构造函数

new Document(id: string, url: string?)

成员方法

createElement(tagName: string, props: Object?): Element

创建一个特定类型 tagName 的 Element 实例,即一个元素结点。props 可以包含 attr 对象和 style 对象。比如 createBody('div', {style: {backgroundColor:

'#ffffff'}})。

createComment(text: string): Comment

创建一个 Comment 的实例,即一个注释结点,并设置一段文本描述。

createBody(tagName: string, props: Object?): Element

创建文档主体结点,并自动挂载到 documentElement 下。

fireEvent(el: Element, type: string, e: Object?, domChanges: Object?)

触发一个特定类型的事件,并附带一个事件对象 e。当该事件在产生过程中修改了 DOM 的特性或样式,则第四个参数用来描述这些改变,参数格式和上面 createElement 方法的格式相同。

destroy()

销毁当前文档。一旦销毁之后文档将不会再工作。

只读成员变量

**id: string

每个 Document 实例都有一个唯一的 id。这同时也是每个 Weex 页面唯一拥有的 id。

URL: string?

如果当前 Weex 页面有 JS bundle URL 的话,这里则会返回 这个 URL。

body: Element

文档的主体结点,概念类似 HTML DOM 里的 document.body。

documentElement: Element

文档的对应结点,概念类似 HTML DOM 里的 document.documentElement。

body 和 documentElement 的关系是:documentElement 是 body 的父结点。

getRef(id): Node

根据结点 id 获取结点。

Node 类

构造函数

new Node()

成员

destroy()

只读成员变量或方法

ref: string

每个 Node 实例都有各自的在整个 Document 实例中唯一的 ref 值。

nextSibling: Node?

previousSibling: Node?

parentNode: Node?

上述三个接口和 HTML DOM 的定义吻合。

children: Node[]

该结点拥有的所有子结点的数组。

pureChildren: Node[]

该结点拥有的所有子元素的数组。和 children 的区别是,pureChildren 只包含了 Element 实例而不包含 Comment 实例。

Element 类 继承自 Node

构造函数

new Element(type: string, props: Object?)

创建一个特定类型 type 的元素结点,参数 props 可以包含 attr 对象或 style 对象。

DOM 树操作

appendChild(node: Node)

insertBefore(node: Node, before: Node?)

上述两个接口类似 HTML DOM。

insertAfter(node: Node, after: Node?)

在一个子结点之前插入新结点 after。

removeChild(node: Node, preserved: boolean?)

删除子结点 node,参数 preserved 表示立刻从内存中删除还是暂时保留。

clear()

清除所有的子结点。

DOM 属性本身操作

setAttr(key: string, value: string, silent: boolean?)

setStyle(key: string, value: string, silent: boolean?)

上述两个接口中,当 silent 为真的时候,结点仅更新自己,不会传递命令给客户端渲染层。该参数用来处理用户事件在发生时已经改变结点相关属性的情况下,不会在 Native DOM 也改变之后重复发送命令给客户端。

addEvent(type: string, handler: Function)

removeEvent(type: string)

fireEvent(type: string, e: any)

绑定事件、解绑定事件、触发事件。

特定组件类型的组件方法

特殊的:不同组件类型可以拥有自己特有的方法,比如 组件支持 refresh 方法,详见各组件的描述,在此情况下,我们会产生特定组件类型的 class,比如 WebElement,它继承自 Element。

如:

WebElement 继承自 Element

表示在 Weex 页面中嵌入一个 webview

refresh(): 刷新当前 webview

只读成员变量或方法

ref, nextSibling, previousSibling, parentNode

继承自 Node。

nodeType: number

永远是数字 1。

type: string

和构造函数里的 type 一致。

attr: Object

当前结点的所有特性的键值对。推荐通过 setAttr() 方法进行修改,而不要直接修改这里的对象。

style: Object

当前结点的所有样式的键值对。推荐通过 setStyle() 方法进行修改,而不要直接修改这里的对象。

event: Object

当前结点的所有事件绑定。每个事件类型对应一个事件句柄方法。推荐通过 addEvent() / removeEvent() 方法进行修改,而不要直接修改这里的对象。

toJSON(): Object

返回描述该元素结点的一段 JSON 对象,形如:{ref: string, type: string, attr: Object, style: Object, event: Array(string), children:

Array}。

Comment 类 继承自 Node

构造函数

new Comment(value: string)

只读成员变量或方法

**`ref, nextSibling, previousSibling, parentNode

继承自 Node。

nodeType: number

永远是数字 8。

type: string

永远是字符串 'comment'

value: string

和构造函数里的 value 一致。

toJSON(): Object

返回描述该注释结点的一段 JSON 对象,形如:。

weex监听android返回键,weex使用手册相关推荐

  1. 小程序监听android返回键,如何监听小程序返回按钮事件?

    写在前面 为了能及时的将自己踩到的前端坑(包括ionic,angular,react,ReactNative,小程序,APICloud)分享给大家,以后会逐渐将文章转移到微信公众号:前端e家(fron ...

  2. 小程序监听android返回键,微信小程序左上角返回按钮触发事件

    从A页面跳转到B页面,再从B页面通过左上角返回按钮,返回到A页面 A页面: B页面: 从B页面返回到A页面时,触发事件请求接口: 代码如下: B页面js代码 onShow: function () { ...

  3. Android监听手机返回键

    Android在做项目时,有时候点击返回按钮没反应(有冲突),那就需要我们监听返回键.重写onKeyDown()方法: // 监听手机返回键 @Override public boolean onKe ...

  4. iOS小技能:监听H5页面goBack返回事件 网页监听APP返回键 (NavigationBackItemInjection)

    文章目录 引言 I . iOS监听H5页面goBack返回事件 1.1 UIWebView 监听H5页面goBack返回事件 1.2 WKWebView监听H5页面goBack返回事件 II. 网页监 ...

  5. JS 监听手机返回键

    JS监听手机返回键,需要用些前端的"奇技淫巧". 核心代码如下: if (window.history && window.history.pushState) { ...

  6. 原生js监听手机返回键

    创建人:hu_time 描述:js监听手机返回键 普通页面跳转,监听返回上一页: document.addEventListener("plusready", function() ...

  7. 监听手机返回键或浏览器后退键并自定义跳转地址

    /**  * 监听手机返回键或浏览器后退键并自定义跳转地址  * oldUrl 本页对应的url  * backUrl 后退到页面的Url  */ function backBtnToUrl(oldU ...

  8. android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键

    本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){         ...

  9. vue监听物理返回键事件

    在一些项目支付页中,有些用户因价格不太满意等导致成交失败,点击返回键退出页面,这个时候可以通过监听用户返回动作来触发某些事件,比如弹出红包优惠等等. // 判断设备是否支持 mounted() {if ...

最新文章

  1. 谋哥:App自推广这个概念就由我来创立了!
  2. 计算机手二进制,求教高手:计算机二进制运算法则?
  3. 屏幕抓取程序 (位图DDB的例子)
  4. ireport学习笔记
  5. 在CentOS4上安装JMagick
  6. 苹果iOS设备解锁软件:iToolab UnlockGo
  7. 托马斯微积分 从入门到失望
  8. Spring实战——FileSystemResource
  9. 安卓音频输出采样率_安卓里LDAC的采样率问题
  10. html怎么叠加透明图片,css – 您可以在图片上叠加透明div
  11. 教你从零开始成为优秀交互设计师(一):交互设计师修炼指南
  12. python类和对象最全详解(持续修订中)
  13. IntelliJ IDEA 之 设置项目编码
  14. 我喜欢这首歌......
  15. [教程]BaiduPCS-Go
  16. python mysql实例_Python操作Mysql实例代码
  17. Go Flag包使用及解析
  18. 带保护装置的水塔自动进水装置
  19. Web项目实战 | 购物系统v2.0 | 开发记录(五)使用base64编码实现头像修改 | 用户个人信息修改 | JQuery动态提示
  20. 国内常见源地址以及简单配置

热门文章

  1. 怎么将手机QQ浏览器里面的文章分享给QQ好友
  2. 字符串处理,查询第一个不是 0 的字符的位置
  3. android获取未知字符串,android – 未知的URL内容:// downloads / my_dow...
  4. mysql linux导入csv主键,MySQL导入csv文件内容到Table及数据库的自增主键设置
  5. mysql id还原_一次线上DB问题排查(MySQL、事务、MVCC)
  6. python while语法结构_python语法之流程控制(if while for)
  7. python对文件的_python 对文件操作
  8. typescript索引类型_typescript入门:高级类型
  9. mysql外键设置sql语句,SQL Server 2008之SQL语句外键
  10. matlab 信号处理 教程,MATLAB信号处理仿真 实验_教程-学习文件.pdf