Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello-uvue
提交
5b059fb3
H
hello-uvue
项目概览
DCloud
/
hello-uvue
通知
401
Star
3
Fork
10
代码
文件
提交
分支
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看板
提交
5b059fb3
编写于
4月 20, 2024
作者:
DCloud-WZF
💬
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor(component instance): circular reference
上级
dc38f9b9
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
130 addition
and
45 deletion
+130
-45
pages.json
pages.json
+2
-2
pages/component-instance/circular-reference/ChildA.uvue
pages/component-instance/circular-reference/ChildA.uvue
+25
-0
pages/component-instance/circular-reference/ChildB.uvue
pages/component-instance/circular-reference/ChildB.uvue
+25
-0
pages/component-instance/circular-reference/ChildC.uvue
pages/component-instance/circular-reference/ChildC.uvue
+21
-0
pages/component-instance/circular-reference/circular-reference.test.js
...nt-instance/circular-reference/circular-reference.test.js
+23
-19
pages/component-instance/circular-reference/circular-reference.uvue
...onent-instance/circular-reference/circular-reference.uvue
+29
-24
pages/index/index.uvue
pages/index/index.uvue
+5
-0
未找到文件。
pages.json
浏览文件 @
5b059fb3
...
...
@@ -455,14 +455,14 @@
"navigationBarTitleText"
:
"defineExpose"
}
},
{
"path"
:
"pages/component-instance/circular-reference/circular-reference"
,
"style"
:
{
"navigationBarTitleText"
:
"circular reference"
}
},
{
"path"
:
"pages/state/data/data"
,
"style"
:
{
...
...
pages/component-instance/circular-reference/
child-a
.uvue
→
pages/component-instance/circular-reference/
ChildA
.uvue
浏览文件 @
5b059fb3
<template>
<view>
<text>child-a::{{text}}</text>
<child-b v-if="!end" class="child-a-child-b" :text="text" :limit="limit-1"></child-b>
</view>
</template>
<script>
import childB from './child-b.uvue'
export default {
components: {
childB
},
props: {
text: {
type: String,
default: ''
},
limit: {
type: Number,
default: 0
}
},
computed: {
end() : boolean {
return this.limit <= 0
}
}
}
</script>
\ No newline at end of file
<template>
<view class="child-a">
<view class="flex justify-between flex-row mb-10">
<text>child A limit:</text>
<text>{{limit}}</text>
</view>
<child-b v-if="limit>1" :limit="limit-1"></child-b>
</view>
</template>
<script lang='uts'>
import childB from './childB.uvue'
export default {
components: {
childB
},
props: {
limit: {
type: Number,
default: 0
}
}
}
</script>
pages/component-instance/circular-reference/
child-b
.uvue
→
pages/component-instance/circular-reference/
ChildB
.uvue
浏览文件 @
5b059fb3
<template>
<view>
<text>child-b::{{text}}</text>
<child-a v-if="!end" class="child-b-child-a" :text="text" :limit="limit-1"></child-a>
<view class="child-b">
<view class="flex justify-between flex-row mb-10">
<text>child B limit:</text>
<text>{{limit}}</text>
</view>
<child-a v-if="limit>1" :limit="limit-1"></child-a>
</view>
</template>
<script>
import childA from './child-a.uvue'
<script lang='uts'>
import childA from './childA.uvue'
export default {
components: {
childA
},
props: {
text: {
type: String,
default: ''
},
limit: {
type: Number,
default: 0
}
},
computed: {
end() : boolean {
return this.limit <= 0
}
}
}
</script>
\ No newline at end of file
</script>
pages/component-instance/circular-reference/
child-c
.uvue
→
pages/component-instance/circular-reference/
ChildC
.uvue
浏览文件 @
5b059fb3
<template>
<view>
<text>child-c::{{text}}</text>
<child-c v-if="!end" class="child-c-child-c" :text="text" :limit="limit-1"></child-c>
</view>
</template>
<script>
export default {
name: "child-c",
props: {
text: {
type: String,
default: ''
},
limit: {
type: Number,
default: 0
}
},
computed: {
end() : boolean {
return this.limit <= 0
}
}
}
<template>
<view class="child-c">
<view class="flex justify-between flex-row mb-10">
<text>child C limit:</text>
<text>{{limit}}</text>
</view>
<child-c v-if="limit>1" :limit="limit-1"></child-c>
</view>
</template>
<script lang='uts'>
export default {
name: "child-c",
props: {
limit: {
type: Number,
default: 0
}
}
}
</script>
\ No newline at end of file
pages/component-instance/circular-reference/circular-reference.test.js
浏览文件 @
5b059fb3
const
PAGE_PATH
=
'
/pages/component-instance/circular-reference/circular-reference
'
describe
(
'
circular-reference
'
,
()
=>
{
let
page
beforeAll
(
async
()
=>
{
page
=
await
program
.
reLaunch
(
PAGE_PATH
)
await
page
.
waitFor
(
500
)
})
it
(
'
render
'
,
async
()
=>
{
// const child_a = await page.$$('.child-a-child-b')
// expect(child_a.length).toBe(5)
// const child_b = await page.$$('.child-b-child-a')
// expect(child_b.length).toBe(5)
const
child_c
=
await
page
.
$$
(
'
.child-c-child-c
'
)
expect
(
child_c
.
length
).
toBe
(
10
)
})
const
PAGE_PATH
=
'
/pages/component-instance/circular-reference/circular-reference
'
describe
(
'
circular-reference
'
,
()
=>
{
let
page
beforeAll
(
async
()
=>
{
page
=
await
program
.
reLaunch
(
PAGE_PATH
)
await
page
.
waitFor
(
1000
)
})
if
(
process
.
env
.
uniTestPlatformInfo
.
toLowerCase
().
includes
(
'
android
'
))
{
it
(
'
cross reference
'
,
async
()
=>
{
const
childA
=
await
page
.
$$
(
'
.child-a
'
)
expect
(
childA
.
length
).
toBe
(
3
)
const
childB
=
await
page
.
$$
(
'
.child-b
'
)
expect
(
childB
.
length
).
toBe
(
2
)
})
}
it
(
'
reference self
'
,
async
()
=>
{
const
childC
=
await
page
.
$$
(
'
.child-c
'
)
expect
(
childC
.
length
).
toBe
(
5
)
})
})
\ No newline at end of file
pages/component-instance/circular-reference/circular-reference.uvue
浏览文件 @
5b059fb3
<template>
<view>
<!-- <child-a class="page-child-a" :text="text" :limit="10"></child-a> -->
<child-c class="page-child-c" :text="text" :limit="10"></child-c>
</view>
</template>
<script>
// import childA from './child-a.uvue'
import childC from './child-c.uvue'
export default {
components: {
// childA,
childC
},
data() {
return {
text: ''
}
},
onLoad() {
this.text = "Date.now().toString()"
}
}
<template>
<view class="page">
<!-- #ifdef APP-ANDROID -->
<!-- TODO: ios & web 不支持 a b 互相引用 -->
<child-a :limit="5"></child-a>
<!-- #endif -->
<child-c :limit="5"></child-c>
</view>
</template>
<script lang='uts'>
// #ifdef APP-ANDROID
import childA from './childA.uvue'
// #endif
import childC from './childC.uvue'
export default {
components: {
// #ifdef APP-ANDROID
childA,
// #endif
childC
},
data() {
return {
text: ''
}
},
}
</script>
\ No newline at end of file
pages/index/index.uvue
浏览文件 @
5b059fb3
...
...
@@ -378,6 +378,11 @@ export default {
id: 'define-expose',
name: 'defineExpose',
url: 'define-expose/define-expose'
},
{
id: 'circular-reference',
name: 'circular reference',
url: 'circular-reference/circular-reference'
}
] as Page[]
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录