diff --git a/docs/component/input.md b/docs/component/input.md index c9ee50c22268057e3c09ee13b864c818221a0b4a..7f3a3b75845d9d2e9da9fa8ce42f6c0adfb4506d 100644 --- a/docs/component/input.md +++ b/docs/component/input.md @@ -37,7 +37,6 @@ |random-number|Boolean|false|当 type 为 number, digit, idcard 数字键盘是否随机排列|支付宝小程序 1.9.0+| |controlled|Boolean|false|是否为受控组件。为 true 时,value 内容会完全受 setData 控制|支付宝小程序 1.9.0+| |always-system|Boolean|false|是否强制使用系统键盘和 Web-view 创建的 input 元素。为 true 时,confirm-type、confirm-hold 可能失效|支付宝小程序 2.7.3+| - |@input|EventHandle||当键盘输入时,触发input事件,event.detail = {value}|差异见下方 Tips| |@focus|EventHandle||输入框聚焦时触发,event.detail = { value, height },height 为键盘高度|仅微信小程序、京东小程序、App(2.2.3+) 、QQ小程序支持 height| |@blur|EventHandle||输入框失去焦点时触发,event.detail = {value: value}|快手小程序不支持| diff --git a/docs/uniCloud/cloud-obj.md b/docs/uniCloud/cloud-obj.md index fd2ebfc23400c8c1e7121a91d892ccc60748fd36..d9820542fea0b6fe6f75de0e2f812bc13f32c86e 100644 --- a/docs/uniCloud/cloud-obj.md +++ b/docs/uniCloud/cloud-obj.md @@ -384,6 +384,28 @@ module.exports = { } ``` +### 获取url化时的http信息@get-http-info + +> 新增于HBuilderX 3.5.2 + +仅可在云对象url化时使用,如何使用云对象的url化请参考:[云对象url化](#http-trigger) + +**接口形式** + +`this.getHttpInfo()` + +**示例** + +```js +module.exports = { + _before: function() { // _before的用法请看后续章节 + const params = this.getHttpInfo() // 返回值和云函数url化时的event一致 + } +} +``` + +相关文档:[云函数url化的入参](uniCloud/cf-function.md?id=input) + ## 预处理与后处理@before-and-after ### 预处理 _before@before @@ -544,6 +566,59 @@ const todo = uniCloud.importObject('todo') const res = await todo.add('title demo', 'content demo') ``` +### 定时触发@timing-trigger + +> 新增于HBuilderX 3.5.2 + +配置方式和云函数一致,相关文档:[定时触发器](uniCloud/trigger.md) + +配置完成后会触发云对象导出的`_timing`方法 + +云对象代码示例: + +```js +module.exports = { + _timing: function () { + console.log('triggered by timing') + } +} +``` + +**注意** + +- 定时触发云对象时,`_before`和`_after`均不执行 + +### url化@http-trigger + +> 新增于HBuilderX 3.5.2 + +配置方式和云函数一致,相关文档:[url化](uniCloud/http.md) + +在url化的文档里面有关于云函数url化时,event.path的说明 + +>url化场景下,event.path表示以配置的url化路径为根路径的访问路径。以配置`/test`为云函数url化路径,访问`/test/a/b/c`时event.path为`/a/b/c` + +调用url化的云对象时,event.path对应的部分必须是云对象导出的方法名。例如:云对象配置的触发路径是`/todo`,调用`/todo/addTodo`即会触发云对象的addTodo方法。方法区分大小写且不可含`/`。 + +url内query部分会被转换成云对象方法的入参。以下面的todo云对象为例 + +```js +module.exports = { + addTodo: function(params) { + console.log(params) + } +} +``` + +如果通过`https://xxx.com/todo/addTodo?title=todo-title&content=todo-content`调用云对象,怎todo方法内的console.log会输出以下内容`{title: 'todo title', content: 'todo content'}` + +需要注意的是自url内解析出的参数均为字符串类型。 + +**注意** + +- url化方式调用云对象时,`_before`和`_after`均正常执行 +- 如果需要获取其他方式传入云对象的参数(如:post一个json内容到云对象),请使用[this.getHttpInfo](#get-http-info)获取 + ### 跨服务空间调用云对象@call-by-cloud-cross-space 云端或者客户端均有uniCloud.init方法可以获取其他服务空间的uniCloud实例,使用此实例的importObject可以调用其他服务空间的云对象,参考:[](uniCloud/concepts/space.md?id=multi-space) @@ -676,6 +751,7 @@ method1(param1) { - 云对象和云函数都在cloudfunctions目录下,但是不同于云函数,云对象的入口为`index.obj.js`,而云函数则是`index.js`。**为正确区分两者uniCloud做出了限制,云函数内不可存在index.obj.js,云对象内也不可存在index.js。** - 所有`_`开头的方法都是私有方法,客户端不可访问 - 云对象也可以引用公共模块或者npm上的包,引用方式和云函数一致。 +- 云对象的导出的方法不可以是箭头函数,导出箭头函数会导致`this`指向不正确 ## 复杂示例 diff --git a/docs/uniCloud/jql.md b/docs/uniCloud/jql.md index e7d53a28ba64d0b6d1618a852cf44bd4fefeadb8..27a3fee100ecc524d5713a8f99f61e6292c3a57c 100644 --- a/docs/uniCloud/jql.md +++ b/docs/uniCloud/jql.md @@ -3347,6 +3347,37 @@ module.exports = { 如果所在服务空间开通了redis,action内可直接使用redis扩展。目前只能云端运行,后续会支持本地运行时在action内使用redis扩展 +**注意** + +- action上传后可能需要一段时间才会在云端生效,通常是3分钟左右 + +## 缓存JQL结果到Redis内@redis-cache + +> 新增于HBuilderX 3.5.2 + +用于缓存业务中不常改动或不需要及时更新的数据,如新闻热点等。详细用法如下 + +1. 在插件市场导入`uni-config-center`插件,插件地址:[uni-config-center](https://ext.dcloud.net.cn/plugin?id=4425) +2. 在`uniCloud/cloudfunction/common/uni-config-center`下创建`uni-jql-cache-redis.json`文件(注意此文件是标准json格式,不支持注释) + +整个`uni-jql-cache-redis.json`文件是一个数组,其中每一项是一个缓存配置。示例内容如下 + +```js +[{ + "id": "test-get", // 缓存id + "jql": "db.collection('test').limit(10).get()", // 要缓存的数据库指令 + "expiresIn": 3600 // 缓存有效期 +}] +``` + +**注意** + +- 注意id为缓存唯一id,不可与其他项重复 +- jql会将缓存配置对应的查询结果缓存到key为`unicloud:jql-cache:${id}:string`redis缓存内 +- 目前不可缓存使用了`db.getCloudEnv()`或`$cloudEnv_`开头的云端环境变量的查询 +- 不可缓存使用了action的查询 +- 不配置expiresIn时数据将会持久保存在redis内 + ## 数据库运算方法列表@aggregate-operator uniCloud的云数据库,提供了一批强大的运算方法。这些方法是数据库执行的,而不是云函数执行的。