Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello-uvue
提交
d6e5e0fa
H
hello-uvue
项目概览
DCloud
/
hello-uvue
通知
348
Star
2
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello-uvue
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
d6e5e0fa
编写于
9月 21, 2024
作者:
DCloud-WZF
💬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(defineModel): 补充复杂类型示例及测试
上级
6448b959
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
32 addition
and
7 deletion
+32
-7
pages/directive/v-model/Foo-composition.uvue
pages/directive/v-model/Foo-composition.uvue
+13
-1
pages/directive/v-model/v-model-composition.test.js
pages/directive/v-model/v-model-composition.test.js
+13
-5
pages/directive/v-model/v-model-composition.uvue
pages/directive/v-model/v-model-composition.uvue
+6
-1
未找到文件。
pages/directive/v-model/Foo-composition.uvue
浏览文件 @
d6e5e0fa
...
...
@@ -8,11 +8,18 @@
<text>v-model:msg in Foo:</text>
<text id="model-msg-text">{{ msg }}</text>
</view>
<view class="mb-10 flex justify-between flex-row">
<text>defineModel num:</text>
<text id="model-num-text">{{ num }}</text>
</view>
<view class="mb-10 flex justify-between flex-row">
<text>defineModel strArr:</text>
<text id="model-str-arr-text">{{ JSON.stringify(strArr) }}</text>
</view>
<view class="mb-10 flex justify-between flex-row">
<text>defineModel numArr:</text>
<text id="model-num-arr-text">{{ JSON.stringify(numArr) }}</text>
</view>
<button class="mb-10" id="update-value-btn" @click="updateValue">
update value
</button>
...
...
@@ -28,9 +35,14 @@ const msg = defineModel('msg', { type: String, default: 'default msg' })
const num = defineModel('num', { type: Number, default: 1 })
const strArr = defineModel<string[]>('strArr', { default: () => [] as string[] })
const numArr = defineModel('numArr', {type: Array as PropType<number[]>, required: true })
const updateValue = () => {
modelValue.value += '1'
msg.value += '2'
num.value++
strArr.value.push(`${strArr.value.length}`)
numArr.value.push(numArr.value.length)
}
</script>
pages/directive/v-model/v-model-composition.test.js
浏览文件 @
d6e5e0fa
...
...
@@ -19,10 +19,15 @@ describe('defineModel', () => {
const
modelMsgInput
=
await
page
.
$
(
'
#model-msg-input
'
)
expect
(
await
modelMsgInput
.
value
()).
toBe
(
'
msg
'
)
const
modelNumText
=
await
page
.
$
(
'
#model-num-text
'
)
expect
(
await
modelNumText
.
text
()).
toBe
(
'
1
'
)
const
modelNumText
=
await
page
.
$
(
'
#model-num-text
'
)
expect
(
await
modelNumText
.
text
()).
toBe
(
'
1
'
)
const
modelStrArrText
=
await
page
.
$
(
'
#model-str-arr-text
'
)
expect
(
await
modelStrArrText
.
text
()).
toBe
(
'
["0"]
'
)
const
modelNumArrText
=
await
page
.
$
(
'
#model-num-arr-text
'
)
expect
(
await
modelNumArrText
.
text
()).
toBe
(
'
[0]
'
)
const
updateValueBtn
=
await
page
.
$
(
'
#update-value-btn
'
)
await
updateValueBtn
.
tap
()
...
...
@@ -32,7 +37,10 @@ describe('defineModel', () => {
expect
(
await
modelValueInput
.
value
()).
toBe
(
'
str1
'
)
expect
(
await
modelMsgText
.
text
()).
toBe
(
'
msg2
'
)
expect
(
await
modelMsgInput
.
value
()).
toBe
(
'
msg2
'
)
expect
(
await
modelMsgInput
.
value
()).
toBe
(
'
msg2
'
)
expect
(
await
modelStrArrText
.
text
()).
toBe
(
'
["0","1"]
'
)
expect
(
await
modelNumArrText
.
text
()).
toBe
(
'
[0,1]
'
)
const
handleModelValueUpdateRes
=
await
page
.
$
(
'
#handle-model-value-update-res
'
)
expect
(
await
handleModelValueUpdateRes
.
text
()).
toBe
(
'
str1
'
)
...
...
pages/directive/v-model/v-model-composition.uvue
浏览文件 @
d6e5e0fa
...
...
@@ -3,8 +3,11 @@
<Foo
v-model="str"
v-model:msg="msg"
v-model:strArr="strArr"
v-model:numArr="numArr"
@update:modelValue="handleModelValueUpdate"
@update:msg="handleModelMsgUpdate" />
@update:msg="handleModelMsgUpdate"
/>
<input class="mb-10 input" id="model-value-input" v-model="str" />
<input class="mb-10 input" id="model-msg-input" v-model="msg" />
<view class="mb-10 flex justify-between flex-row">
...
...
@@ -23,6 +26,8 @@ import Foo from './Foo-composition.uvue'
const str = ref('str')
const msg = ref('msg')
const strArr = ref<string[]>(['0'])
const numArr = ref<number[]>([0])
const handleModelValueUpdateRes = ref('')
const handleModelValueUpdate = (val : string) => {
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录