Vue中$emit调用父组件异步方法,子组件通过回调实现同步。
// 父页面// 父页面调用组件的html中添加事件 @test=“test”methods : {test(data, cab) {setTimeout(() => {// 这里使用定时器内 模拟执行完容方法console.log(data) // 这是传递过来的参数 用于处理data++cab(data) // 将处理完成的数据返回回去
·
// 父页面
// 父页面调用组件的html中添加事件 @test=“test”
methods : {
test(data, cab) {
setTimeout(() => {
// 这里使用定时器内 模拟执行完容方法
console.log(data) // 这是传递过来的参数 用于处理
data++
cab(data) // 将处理完成的数据返回回去
}, 2000)
}
}
// 子页面$emit抛出
this.$emit('tset', 1, (res)=> {
console.log(res) // 2秒后会执行这一句 打印2
})
如果该方法参数不固定,可以通过ts的可选参数实现
父:
private test(data:any, cab?:Function) {
if(cab){
cab(data)
}
}
子页面调用时,回调可以不传。
更多推荐
已为社区贡献2条内容
所有评论(0)