Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello-uvue
提交
9941fe78
H
hello-uvue
项目概览
DCloud
/
hello-uvue
通知
356
Star
3
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看板
提交
9941fe78
编写于
9月 12, 2023
作者:
H
hdx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
watch: 补充立即执行例子
上级
71dd587f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
100 addition
and
66 deletion
+100
-66
pages/component-instance/watch-function/child.uvue
pages/component-instance/watch-function/child.uvue
+39
-25
pages/component-instance/watch-function/watch-function.test.js
.../component-instance/watch-function/watch-function.test.js
+7
-1
pages/component-instance/watch-function/watch-function.uvue
pages/component-instance/watch-function/watch-function.uvue
+54
-40
未找到文件。
pages/component-instance/watch-function/child.uvue
浏览文件 @
9941fe78
...
...
@@ -12,38 +12,52 @@
<text>子组件 值是否变化</text>
<text>{{ changed }}</text>
</view>
<view class="row">
<text>immediate=true 值应为 true</text>
<text>{{ immediateChanged }}</text>
</view>
</view>
</template>
<script>
export default {
name: "watch-child",
data() {
return {
val: "init",
changed: false,
}
},
mounted() {
this.createWatch()
},
methods: {
createWatch() {
this.$watch('val', () => {
this.changed = !this.changed
})
export default {
name: "watch-child",
data() {
return {
val: "init",
changed: false,
immediateValue: 'value',
immediateChanged: false,
}
},
mounted() {
this.createWatch()
this.createImmediateWatch()
},
methods: {
createWatch() {
this.$watch('val', () => {
this.changed = !this.changed
})
this.val = 'changed'
this.val = 'changed'
},
createImmediateWatch() {
this.$watch('immediateWatchValue', () => {
this.immediateChanged = !this.immediateChanged
}, {
immediate: true
})
},
}
}
}
</script>
<style>
.row {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
</style>
.row {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
</style>
\ No newline at end of file
pages/component-instance/watch-function/watch-function.test.js
浏览文件 @
9941fe78
...
...
@@ -14,6 +14,9 @@ describe('$watch()', () => {
expect
(
value
).
not
.
toBe
(
initValue
)
expect
(
isChange
).
toBe
(
true
)
const
isChange2
=
await
(
await
page
.
data
()).
immediateChanged
expect
(
isChange2
).
toBe
(
true
)
})
it
(
'
子组件 $watch() 生效
'
,
async
()
=>
{
...
...
@@ -24,5 +27,8 @@ describe('$watch()', () => {
expect
(
value
).
not
.
toBe
(
initValue
)
expect
(
isChange
).
toBe
(
true
)
const
isChange2
=
await
(
await
comp
.
data
()).
immediateChanged
expect
(
isChange2
).
toBe
(
true
)
})
})
})
\ No newline at end of file
pages/component-instance/watch-function/watch-function.uvue
浏览文件 @
9941fe78
...
...
@@ -12,54 +12,68 @@
<text>值是否变化</text>
<text>{{ changed }}</text>
</view>
<view class="row">
<text>immediate=true 值应为 true</text>
<text>{{ immediateChanged }}</text>
</view>
<watch-child class="watch-child"></watch-child>
</view>
</template>
<script>
import child from './child.uvue'
import child from './child.uvue'
export default {
components: {
watchChild: child
},
data() {
return {
val: "init",
changed: false,
// a: 'a',
// b: 'b',
// abChanged: false
}
},
mounted() {
this.createWatch()
// this.createGetterWatch()
},
methods: {
createWatch() {
this.$watch('val', () => {
this.changed = !this.changed
})
this.val = 'changed'
export default {
components: {
watchChild: child
},
data() {
return {
val: "init",
changed: false,
immediateValue: 'value',
immediateChanged: false,
// a: 'a',
// b: 'b',
// abChanged: false
}
},
// createGetterWatch () {
// this.$watch(() => this.a + this.b, () => {
// this.abChanged = !this.abChanged
// })
//
// this.a = 'changed'
// }
mounted() {
this.createWatch()
this.createImmediateWatch()
// this.createGetterWatch()
},
methods: {
createWatch() {
this.$watch('val', () => {
this.changed = !this.changed
})
this.val = 'changed'
},
createImmediateWatch() {
this.$watch('immediateWatchValue', () => {
this.immediateChanged = !this.immediateChanged
}, {
immediate: true
})
},
// createGetterWatch () {
// this.$watch(() => this.a + this.b, () => {
// this.abChanged = !this.abChanged
// })
//
// this.a = 'changed'
// }
}
}
}
</script>
<style>
.row {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
</style>
.row {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-bottom: 10px;
}
</style>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录