Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
83250d87
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
207
Star
4
Fork
46
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
14
列表
看板
标记
里程碑
合并请求
16
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
14
Issue
14
列表
看板
标记
里程碑
合并请求
16
合并请求
16
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
83250d87
编写于
7月 13, 2024
作者:
W
wanganxp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新context和泛型值传递问题
上级
742836c7
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
57 addition
and
12 deletion
+57
-12
docs/api/create-video-context.md
docs/api/create-video-context.md
+26
-1
docs/api/create-webview-context.md
docs/api/create-webview-context.md
+20
-0
docs/api/request.md
docs/api/request.md
+7
-6
docs/uts/generics.md
docs/uts/generics.md
+4
-5
未找到文件。
docs/api/create-video-context.md
浏览文件 @
83250d87
...
...
@@ -2,10 +2,35 @@
<!-- UTSAPIJSON.createVideoContext.description -->
参考:
[
video组件
](
../component/video.md
)
<!-- UTSAPIJSON.createVideoContext.compatibility -->
<!-- UTSAPIJSON.createVideoContext.param -->
在video组件上设置id属性,即可通过本API获取该组件的上下文对象(videoContext )。
在不传入第2个component参数时,默认从页面栈顶的页面来查找这个video。
```
js
let
v1
=
uni
.
createVideoContext
(
"
video1
"
)
```
但在页面、组件,可能出现id重复的情况,还可能因为调用时机的不同,想定位不同页面的video id。此时就需要传入第2个参数component。
所有vue组件都有ComponentPublicInstance实例,页面上也有组件实例。
如果传入组件实例,就从这个组件中查询指定的id。这样查找范围更小、查找速度也更快。
在选项式和组合式中,获取组件实例略有差别。
-
选项式中,this代表当前vue实例。如果是在页面的export default内、函数外使用this,即代表该页面的组件实例。
```
js
let
v1
=
uni
.
createVideoContext
(
"
video1
"
,
this
)
```
-
组合式中,通过getCurrentInstance()!.proxy! 获取当前页面的组件实例。
```
js
let
v1
=
uni
.
createVideoContext
(
"
video1
"
,
getCurrentInstance
()
!
.
proxy
!
)
```
<!-- UTSAPIJSON.createVideoContext.returnValue -->
<!-- UTSAPIJSON.createVideoContext.example -->
...
...
@@ -16,4 +41,4 @@
<!-- UTSAPIJSON.general_type.param -->
示例代码另见
[
video组件
](
../component/video.md
)
示例代码另见
[
video组件
](
../component/video.md
)
\ No newline at end of file
docs/api/create-webview-context.md
浏览文件 @
83250d87
...
...
@@ -2,6 +2,26 @@
<!-- UTSAPIJSON.createWebviewContext.description -->
由于本API仅在App端支持。推荐直接使用DOM API操作。UniWebViewElement比webviewContext有更多属性和方法。例如:
```
js
let
wv
=
uni
.
getElementById
(
"
wv1
"
)
as
UniWebViewElement
```
如果您继续使用createWebviewContext,请注意第2个参数问题。
在不传入第2个component参数时,默认从页面栈顶的页面来查找这个webviewContext。
在选项式和组合式中,获取组件实例略有差别。
-
选项式中,this代表当前vue实例。如果是在页面的export default内、函数外使用this,即代表该页面的组件实例。
```
js
let
v1
=
uni
.
createWebviewContext
(
"
wv1
"
,
this
)
```
-
组合式中,通过getCurrentInstance()!.proxy! 获取当前页面的组件实例。
```
js
let
v1
=
uni
.
createWebviewContext
(
"
wv1
"
,
getCurrentInstance
()
!
.
proxy
!
)
```
<!-- UTSAPIJSON.createWebviewContext.compatibility -->
<!-- UTSAPIJSON.createWebviewContext.param -->
...
...
docs/api/request.md
浏览文件 @
83250d87
...
...
@@ -17,17 +17,18 @@
## 注意事项
*
app-android平台 request 接口内部通过
[
特殊方式读取了泛型类型
](
../uts/generics.md#使用限制
)
,不支持传入动态的泛型:比如将外层方法的普通泛型参数传入 request。
*
推荐使用成熟的网络拦截器插件,见
[
插件市场
](
https://ext.dcloud.net.cn/search?q=%E7%BD%91%E7%BB%9C%E6%8B%A6%E6%88%AA%E5%99%A8&uni-appx=1
)
*
app-android平台 request 接口如需包装和传递泛型,需参考
[
泛型传递丢失注意
](
../plugin/uts-for-android.md#6.6
泛型传递丢失的问题)。成熟的拦截器插件均已自动处理这些问题。
*
如果使用泛型先创建RequestOptions实例,再传入uni.request(),此时请务必确保request要显式指定泛型,例:
```
typescript
const
options
:
RequestOptions
<
Person
>
=
...
uni
.
request
<
Person
>
(
options
)
```
```
typescript
const
options
:
RequestOptions
<
Person
>
=
...
uni
.
request
<
Person
>
(
options
)
```
*
app-android平台 uni.request()暂未支持Promise,返回值是RequestTask。
*
web平台 request接口在 4.01版本之前返回数据是一个普通对象,4.01起调整为UTSJSONObject类型
*
web平台 request接口目前不支持创建传入的泛型的实例
由于uni-app x的强类型,导致联网相关开发有一些不同,请
参考完整
教程:
[
uni-app x的联网教程
](
../tutorial/request.md
)
由于uni-app x的强类型,导致联网相关开发有一些不同,请
不熟悉强类型的开发者务必阅读
教程:
[
uni-app x的联网教程
](
../tutorial/request.md
)
<!-- UTSAPIJSON.general_type.name -->
...
...
docs/uts/generics.md
浏览文件 @
83250d87
...
...
@@ -80,10 +80,9 @@ function testArray<T extends Array<unknown>>(arg: T): T {
}
```
##
使用限制
##
注意
普通泛型类型不可以作为值使用。
ts本质是擦除类型的。在强类型语言中,传递泛型时如将泛型类型作为值使用,需通过特殊方式将泛型类型作为值使用,可以根据传入来动态决定返回类型。
[
详见
](
../plugin/uts-for-android.md#6.6
泛型传递丢失的问题)
> HBuilderX 3.9.0+ 支持通过特殊方式将泛型类型作为值使用(暂未开放),方法可以根据传入来动态决定返回类型。
>
> 这个未开放的泛型用法最常用的是在request api里,[详见](../tutorial/request.md)
> 泛型用法最常用的是在request api里,[详见](../tutorial/request.md)
> 网络请求包装推荐使用成熟的网络拦截器插件,见[插件市场](https://ext.dcloud.net.cn/search?q=%E7%BD%91%E7%BB%9C%E6%8B%A6%E6%88%AA%E5%99%A8&uni-appx=1)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录