mina:page_function
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| mina:page_function [2020/08/21 22:34] – sabertoy | mina:page_function [2020/08/24 15:36] (当前版本) – [5. 使用 Component] sabertoy | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== Page()函数 ====== | + | ====== |
| + | |||
| + | ===== -#1 Page() ===== | ||
| Page() 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。参考[[https:// | Page() 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。参考[[https:// | ||
| 行 29: | 行 32: | ||
| </ | </ | ||
| - | ===== 事件处理函数 ===== | + | ===== -#2 事件处理函数 ===== |
| + | |||
| + | Page 中还可以定义组件事件处理函数。在渲染层的组件中加入事件绑定,当事件被触发时,就会执行 Page 中定义的事件处理函数。 | ||
| + | |||
| + | <code xml> | ||
| + | <view bindtap=" | ||
| + | </ | ||
| + | |||
| + | <code javascript> | ||
| + | Page({ | ||
| + | viewTap: function() { | ||
| + | console.log(' | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | ==== - Page.route ==== | ||
| + | |||
| + | 到当前页面的路径,类型为String。 | ||
| Page.prototype.route | Page.prototype.route | ||
| <wrap em> | <wrap em> | ||
| - | | + | |
| + | ==== - Page.prototype.setData() | ||
| + | |||
| + | Page.prototype.setData(Object data, Function callback) | ||
| + | | ||
| <wrap em> | <wrap em> | ||
| 行 41: | 行 66: | ||
| * 直接修改 this.data 而 :!: 不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 | * 直接修改 this.data 而 :!: 不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致 | ||
| * 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。 | * 单次设置的数据不能超过1024kB,请尽量避免一次设置过多的数据。 | ||
| + | |||
| + | <code xml> | ||
| + | < | ||
| + | < | ||
| + | <button bindtap=" | ||
| + | < | ||
| + | <button bindtap=" | ||
| + | < | ||
| + | <button bindtap=" | ||
| + | < | ||
| + | <button bindtap=" | ||
| + | < | ||
| + | <button bindtap=" | ||
| + | </ | ||
| + | |||
| + | <code javascript> | ||
| + | // index.js | ||
| + | Page({ | ||
| + | data: { | ||
| + | text: 'init data', | ||
| + | num: 0, | ||
| + | array: [{text: 'init data' | ||
| + | object: { | ||
| + | text: 'init data' | ||
| + | } | ||
| + | }, | ||
| + | changeText: function() { | ||
| + | // this.data.text = ' | ||
| + | // 应该使用 setData | ||
| + | this.setData({ | ||
| + | text: ' | ||
| + | }) | ||
| + | }, | ||
| + | changeNum: function() { | ||
| + | // 或者,可以修改 this.data 之后马上用 setData 设置一下修改了的字段 | ||
| + | this.data.num = 1 | ||
| + | this.setData({ | ||
| + | num: this.data.num | ||
| + | }) | ||
| + | }, | ||
| + | changeItemInArray: | ||
| + | // 对于对象或数组字段,可以直接修改一个其下的子字段,这样做通常比修改整个对象或数组更好 | ||
| + | this.setData({ | ||
| + | ' | ||
| + | }) | ||
| + | }, | ||
| + | changeItemInObject: | ||
| + | this.setData({ | ||
| + | ' | ||
| + | }); | ||
| + | }, | ||
| + | addNewField: | ||
| + | this.setData({ | ||
| + | ' | ||
| + | }) | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | ===== -#3 页面间通信 ===== | ||
| + | |||
| + | ===== -#4 使用 behaviors() ===== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code javascript> | ||
| + | // my-behavior.js | ||
| + | module.exports = Behavior({ | ||
| + | data: { | ||
| + | sharedText: 'This is a piece of data shared between pages.' | ||
| + | }, | ||
| + | methods: { | ||
| + | sharedMethod: | ||
| + | this.data.sharedText === 'This is a piece of data shared between pages.' | ||
| + | } | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | <code javascript> | ||
| + | // page-a.js | ||
| + | var myBehavior = require(' | ||
| + | Page({ | ||
| + | behaviors: [myBehavior], | ||
| + | onLoad: function() { | ||
| + | this.data.sharedText === 'This is a piece of data shared between pages.' | ||
| + | } | ||
| + | }) | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ==== - 组件中使用 ==== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== -#5 使用 Component ===== | ||
| + | |||
| + | Page 构造器适用于简单的页面。但对于复杂的页面, Page 构造器可能并不好用。 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | <code javascript> | ||
| + | Component({ | ||
| + | data: { | ||
| + | text: "This is page data." | ||
| + | }, | ||
| + | methods: { | ||
| + | onLoad: function(options) { | ||
| + | // 页面创建时执行 | ||
| + | }, | ||
| + | onPullDownRefresh: | ||
| + | // 下拉刷新时执行 | ||
| + | }, | ||
| + | // 事件响应函数 | ||
| + | viewTap: function() { | ||
| + | // ... | ||
| + | } | ||
| + | } | ||
| + | }) | ||
| + | < | ||
| + | |||
mina/page_function.1598020455.txt.gz · 最后更改: 2020/08/21 22:34 (外部编辑)
