vue 父控件与父控件更新最好结决方案 EventBus(三)
Vue 更新 方案 控件 最好 EventBus
2023-09-27 14:27:48 时间
前面已经有两种更新的方式
但是都不是最合适的 影响效率。
我们可以试用EventBus来更新
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.js"></script>
<style>
#app,
button,
input {
font-size: 1.35em;
margin: .5em;
}
</style>
</head>
<body>
<div id="app">
<custom-elem1></custom-elem1>
<custom-elem2></custom-elem2>
</div>
<script>
//event bus
var bus=new Vue();
Vue.component('custom-elem1',{
template:' <div class="custom-elem1">\n' +
' <input type="text" v-model="msg"><button @click="submit">Submit</button>\n' +
' </div>',
methods:{
submit(){
bus.$emit('receive',this.msg);
}
},
data(){
return{
msg:'456',
}
}
});
Vue.component('custom-elem2',{
template:' <div class="custom-elem2">{{msg}}</div>',
created(){
var that=this;
bus.$on('receive',function(newMsg){
that.msg=newMsg;
});
``
},
data(){
return{
msg:"123"
};
}
});
var app=new Vue({
el:'#app'
});
</script>
</body>
</html>
核心就是用$on 和$emit事件来接受和发送消息
第三方来发送和接受事件,就省去了节点的频繁更新
而这个第三方要注意
可以看到我们使用发送
bus.$emit('receive',this.msg);
接收
bus.$on('receive',function(newMsg){
that.msg=newMsg;
});
这个receive是可以是任意字符串的 就是为了区分事件名称。
相关文章
- 微信小程序在线医生答疑+后台管理系统|前后分离VUE
- vue tab切换
- 美容预约平台+后台管理系统|前后分离VUE
- [Vue] 11 - Amplify: CI/CD Pipeline
- Vue父组件调用子组件的方法
- vue @blur v-model数据没有更新问题
- js之封装(秒数)转化为时分秒倒计时组件 vue版本
- webpack4搭建Vue开发环境笔记~~持续更新
- vue 关于数组和对象的更新
- vue系列:跳转到同一个路由参数不同但是不触发更新的问题
- Vue PC前端扫码登录
- vue Object.freeze之打破双向绑定 让对象不响应式更新
- 【Vue 开发实战】基础篇 # 8:如何触发组件的更新
- vue 里怎么使用 echarts 实现地图自动轮播功能、自定义 tooltip 悬浮位置提示、自定义 label 标签位置样式?
- Vue中的computed计算属性在生命周期中的执行阶段
- vue项目打包webpack体积优化
- Vue官方文档梳理-全局配置