Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
c5e69f00
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c5e69f00
编写于
10月 12, 2024
作者:
shutao-dc
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update uts-vue-component.md
上级
2d534c2b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
144 addition
and
5 deletion
+144
-5
docs/plugin/uts-vue-component.md
docs/plugin/uts-vue-component.md
+144
-5
未找到文件。
docs/plugin/uts-vue-component.md
浏览文件 @
c5e69f00
...
@@ -60,7 +60,7 @@ HBuilder X 选中你的项目,项目根目录选中uni_modules目录,右键
...
@@ -60,7 +60,7 @@ HBuilder X 选中你的项目,项目根目录选中uni_modules目录,右键
构建标准模式组件后,HBuilder X 会自动创建components/native-button/native-button.uvue文件,在该文件编写代码添加 native-view 标签
构建标准模式组件后,HBuilder X 会自动创建components/native-button/native-button.uvue文件,在该文件编写代码添加 native-view 标签
```
ts
```
html
<template>
<template>
<native-view></native-view>
<native-view></native-view>
</template>
</template>
...
@@ -72,11 +72,33 @@ native-view 初始化会触发 @init 事件,此时创建NativeButton对象,n
...
@@ -72,11 +72,33 @@ native-view 初始化会触发 @init 事件,此时创建NativeButton对象,n
[
NativeButton
](
#实现nativebutton对象
)
是在utssdk目录构建的原生对象。NativeButton对象内部处理原生view与native-view绑定关联业务
[
NativeButton
](
#实现nativebutton对象
)
是在utssdk目录构建的原生对象。NativeButton对象内部处理原生view与native-view绑定关联业务
```
ts
::: preview
> 组合式 API
```
html
<template>
<native-view
@
init=
"onviewinit"
></native-view>
</template>
<script
setup
lang=
"uts"
>
//引入 NativeButton 原生对象
import
{
NativeButton
}
from
"
@/uni_modules/native-button
"
;
let
button
:
NativeButton
|
null
=
null
//native-view初始化时触发此方法
function
onviewinit
(
e
:
UniNativeViewInitEvent
)
{
//获取UniNativeViewElement 传递给NativeButton对象
button
=
new
NativeButton
(
e
.
detail
.
element
);
}
</script>
```
> 选项式 API
```
html
<template>
<template>
<native-view
@
init=
"onviewinit"
></native-view>
<native-view
@
init=
"onviewinit"
></native-view>
</template>
</template>
...
...
<script
lang=
"uts"
>
//引入 NativeButton 原生对象
//引入 NativeButton 原生对象
import
{
NativeButton
}
from
"
@/uni_modules/native-button
"
;
import
{
NativeButton
}
from
"
@/uni_modules/native-button
"
;
export
default
{
export
default
{
...
@@ -93,12 +115,31 @@ native-view 初始化会触发 @init 事件,此时创建NativeButton对象,n
...
@@ -93,12 +115,31 @@ native-view 初始化会触发 @init 事件,此时创建NativeButton对象,n
}
}
}
}
}
}
</script>
```
```
#### 组件声明方法
#### 组件声明方法
在 methods 节点中添加updateText方法,native-button组件使用者可调用该方法更新native-button文案。
[
页面调用组件方法
](
https://doc.dcloud.net.cn/uni-app-x/vue/component.html#page-call-component-method
)
在 methods 节点中添加updateText方法,native-button组件使用者可调用该方法更新native-button文案。
[
页面调用组件方法
](
https://doc.dcloud.net.cn/uni-app-x/vue/component.html#page-call-component-method
)
::: preview
> 组合式 API
```
ts
<
script
setup
lang
=
"
uts
"
>
//引入 NativeButton 原生对象
import
{
NativeButton
}
from
"
@/uni_modules/native-button
"
;
let
button
:
NativeButton
|
null
=
null
//声明方法
function
updateText
(
value
:
string
)
{
button
?.
updateText
(
value
)
}
<
/script>
```
> 选项式 API
```
ts
```
ts
methods
:
{
methods
:
{
//对外函数
//对外函数
...
@@ -112,6 +153,29 @@ methods: {
...
@@ -112,6 +153,29 @@ methods: {
native-button 声明props,例如native-button的文案信息text属性,按vue规范监听到text属性更新,通过NativeButton对象驱动更新原生view属性,在components/native-button/native-button.uvue编写如下代码,具体参考
[
vue组件Props规范
](
https://cn.vuejs.org/guide/components/props.html
)
native-button 声明props,例如native-button的文案信息text属性,按vue规范监听到text属性更新,通过NativeButton对象驱动更新原生view属性,在components/native-button/native-button.uvue编写如下代码,具体参考
[
vue组件Props规范
](
https://cn.vuejs.org/guide/components/props.html
)
::: preview
> 组合式 API
```
html
<script
setup
lang=
"uts"
>
//声明属性
const
props
=
defineProps
<
{
text
:
string
}
>
()
//声明方法
function
updateText
(
value
:
string
)
{
button
?.
updateText
(
value
)
}
//监听属性变化
watchEffect
(()
=>
{
// console.log("watchEffect "+props.text)
const
text
=
props
.
text
updateText
(
text
)
})
</script>
```
> 选项式 API
```
html
```
html
<script
lang=
"uts"
>
<script
lang=
"uts"
>
export
default
{
export
default
{
...
@@ -138,6 +202,28 @@ native-button 声明props,例如native-button的文案信息text属性,按vu
...
@@ -138,6 +202,28 @@ native-button 声明props,例如native-button的文案信息text属性,按vu
native-button 声明事件,例如原生组件触发点击事件@buttonTap, NativeButton对象通过 UniNativeViewElement 的 dispatchEvent 函数触发native-view的 @customClick 自定义事件。native-button.uvue监听native-view的 @customClick 自定义事件实现this.$emit触发声明事件,具体参考
[
vue组件事件规范
](
https://cn.vuejs.org/guide/components/events.html
)
native-button 声明事件,例如原生组件触发点击事件@buttonTap, NativeButton对象通过 UniNativeViewElement 的 dispatchEvent 函数触发native-view的 @customClick 自定义事件。native-button.uvue监听native-view的 @customClick 自定义事件实现this.$emit触发声明事件,具体参考
[
vue组件事件规范
](
https://cn.vuejs.org/guide/components/events.html
)
::: preview
> 组合式 API
```
html
<template>
<native-view
@
customClick=
"ontap"
></native-view>
</template>
<script
setup
lang=
"uts"
>
//声明事件
const
emit
=
defineEmits
<
{
(
e
:
"
buttonTap
"
,
event
:
UniNativeViewEvent
)
:
void
}
>
()
function
ontap
(
e
:
UniNativeViewEvent
)
{
emit
(
"
buttonTap
"
,
e
)
}
</script>
```
> 选项式 API
```
html
```
html
<template>
<template>
<native-view
@
customClick=
"ontap"
></native-view>
<native-view
@
customClick=
"ontap"
></native-view>
...
@@ -159,6 +245,59 @@ native-button 声明事件,例如原生组件触发点击事件@buttonTap, Nat
...
@@ -159,6 +245,59 @@ native-button 声明事件,例如原生组件触发点击事件@buttonTap, Nat
native-button/components/native-button/native-button.uvue 最终代码如下:
native-button/components/native-button/native-button.uvue 最终代码如下:
::: preview
> 组合式 API
```
html
<template>
<native-view
@
init=
"onviewinit"
@
customClick=
"ontap"
></native-view>
</template>
<script
setup
lang=
"uts"
>
import
{
NativeButton
}
from
"
@/uni_modules/native-button
"
;
let
button
:
NativeButton
|
null
=
null
//声明属性
const
props
=
defineProps
<
{
text
:
string
}
>
()
//声明事件
const
emit
=
defineEmits
<
{
(
e
:
"
load
"
)
:
void
(
e
:
"
buttonTap
"
,
event
:
UniNativeViewEvent
)
:
void
}
>
()
//声明方法
function
updateText
(
value
:
string
)
{
button
?.
updateText
(
value
)
}
//监听属性变化
watchEffect
(()
=>
{
const
text
=
props
.
text
updateText
(
text
)
})
//native-view初始化时触发此方法
function
onviewinit
(
e
:
UniNativeViewInitEvent
)
{
//获取UniNativeViewElement 传递给NativeButton对象
button
=
new
NativeButton
(
e
.
detail
.
element
);
updateText
(
props
.
text
)
emit
(
"
load
"
)
}
function
ontap
(
e
:
UniNativeViewEvent
)
{
emit
(
"
buttonTap
"
,
e
)
}
function
onUnmounted
()
{
// iOS平台需要主动释放 uts 实例
button
?.
destroy
()
}
</script>
```
> 选项式 API
```
html
```
html
<template>
<template>
<native-view
@
init=
"onviewinit"
@
customClick=
"ontap"
></native-view>
<native-view
@
init=
"onviewinit"
@
customClick=
"ontap"
></native-view>
...
@@ -217,7 +356,7 @@ utssdk目录实现不同平台的原生NativeButton对象,构造参数获取Un
...
@@ -217,7 +356,7 @@ utssdk目录实现不同平台的原生NativeButton对象,构造参数获取Un
> Android
> Android
```
html
```
uts
import { Button } from "android.widget"
import { Button } from "android.widget"
export class NativeButton {
export class NativeButton {
...
@@ -260,7 +399,7 @@ export class NativeButton {
...
@@ -260,7 +399,7 @@ export class NativeButton {
> iOS
> iOS
```
html
```
uts
import { UIButton, UIControl } from "UIKit"
import { UIButton, UIControl } from "UIKit"
export class NativeButton {
export class NativeButton {
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录