Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello-uvue
提交
5400482a
H
hello-uvue
项目概览
DCloud
/
hello-uvue
通知
350
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看板
提交
5400482a
编写于
1月 18, 2024
作者:
DCloud-WZF
💬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(composition api): useSlots
上级
9d6c3874
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
86 addition
and
7 deletion
+86
-7
components/Lifecycle.uvue
components/Lifecycle.uvue
+4
-4
pages/composition-api/basic/use-slots/Foo.uvue
pages/composition-api/basic/use-slots/Foo.uvue
+34
-0
pages/composition-api/basic/use-slots/use-slots.test.js
pages/composition-api/basic/use-slots/use-slots.test.js
+33
-0
pages/composition-api/basic/use-slots/use-slots.uvue
pages/composition-api/basic/use-slots/use-slots.uvue
+14
-2
pages/tab-bar/composition-api.uvue
pages/tab-bar/composition-api.uvue
+1
-1
未找到文件。
components/Lifecycle.uvue
浏览文件 @
5400482a
...
...
@@ -3,7 +3,7 @@
<button class="component-lifecycle-btn" @click="updateTitle">updateTitle</button>
</template>
<script
lang="ts"
>
<script>
import { state, setLifeCycleNum } from '../store/index.uts'
export default {
name: 'ComponentLifecycle',
...
...
pages/composition-api/basic/use-slots/Foo.uvue
0 → 100644
浏览文件 @
5400482a
<template>
<view class="page">
<slot name="header" :num="num"></slot>
<slot :msg="msg"></slot>
<slot name="footer" :arr="arr"></slot>
<text id="check-use-slots-res" class="uni-common-mt">check useSlots result: {{ checkUseSlotsRes }}</text>
<button id="check-use-slots-btn" class="uni-common-mt" @click="checkUseSlots">
check useSlots
</button>
</view>
</template>
<script setup>
const num = ref<number>(0);
const msg = ref('default msg');
const arr = ref<string[]>(['a', 'b', 'c']);
const slots = defineSlots<{
default(props : { msg : string }) : any;
header(props : { num : number }) : any;
footer(props : { arr : string[] }) : any;
}>();
const slotsByUseSlots = useSlots();
const checkUseSlotsRes = ref(false);
const checkUseSlots = () => {
checkUseSlotsRes.value =
slots === slotsByUseSlots &&
slotsByUseSlots['default'] !== null &&
slotsByUseSlots['header'] !== null &&
slotsByUseSlots['footer'] !== null;
};
</script>
\ No newline at end of file
pages/composition-api/basic/use-slots/use-slots.test.js
0 → 100644
浏览文件 @
5400482a
const
PAGE_PATH
=
'
/pages/composition-api/basic/use-slots/use-slots
'
describe
(
'
useSlots
'
,
()
=>
{
if
(
process
.
env
.
uniTestPlatformInfo
.
startsWith
(
'
android
'
))
{
let
page
=
null
beforeAll
(
async
()
=>
{
page
=
await
program
.
reLaunch
(
PAGE_PATH
)
await
page
.
waitFor
(
'
view
'
)
})
it
(
'
basic
'
,
async
()
=>
{
const
slotHeader
=
await
page
.
$
(
'
#slot-header
'
)
expect
(
await
slotHeader
.
text
()).
toBe
(
'
header slot num: 0
'
)
const
slotContent
=
await
page
.
$
(
'
#slot-default
'
)
expect
(
await
slotContent
.
text
()).
toBe
(
'
default slot msg: default msg
'
)
const
slotFooter
=
await
page
.
$
(
'
#slot-footer
'
)
expect
(
await
slotFooter
.
text
()).
toBe
(
'
footer slot arr: ["a","b","c"]
'
)
const
checkUseSlotsRes
=
await
page
.
$
(
'
#check-use-slots-res
'
)
expect
(
await
checkUseSlotsRes
.
text
()).
toBe
(
'
check useSlots result: false
'
)
const
checkUseSlotsBtn
=
await
page
.
$
(
'
#check-use-slots-btn
'
)
await
checkUseSlotsBtn
.
tap
()
expect
(
await
checkUseSlotsRes
.
text
()).
toBe
(
'
check useSlots result: true
'
)
})
}
else
{
it
(
'
other platform
'
,
()
=>
{
expect
(
1
).
toBe
(
1
)
})
}
})
\ No newline at end of file
pages/composition-api/basic/use-slots/use-slots.uvue
浏览文件 @
5400482a
<template>
<view class="page"> useSlots </view>
<Foo>
<template #header="{num}">
<text id="slot-header">header slot num: {{num}}</text>
</template>
<template #default="{msg}">
<text id="slot-default" class="uni-common-mt">default slot msg: {{msg}}</text>
</template>
<template #footer="{arr}">
<text id="slot-footer" class="uni-common-mt">footer slot arr: {{arr}}</text>
</template>
</Foo>
</template>
<script setup></script>
<script setup>
import Foo from './Foo.uvue'
</script>
\ No newline at end of file
pages/tab-bar/composition-api.uvue
浏览文件 @
5400482a
...
...
@@ -75,7 +75,7 @@
{
name: 'useSlots',
url: 'use-slots',
enable:
fals
e,
enable:
tru
e,
},
{
name: 'useAttrs',
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录