当前位置: 首页 > news >正文

镇江做网站seoseo外包顾问

镇江做网站seo,seo外包顾问,网上写作平台有哪些,为什么要建设个人网站组件间通信方式是前端必不可少的知识点,前端开发经常会遇到组件间通信的情况,而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第三弹------$bus,并讲讲分别在Vue2、Vue3中的表现。 Vue2Vue3组件间通信方式汇总(1&#xff09…

 组件间通信方式是前端必不可少的知识点,前端开发经常会遇到组件间通信的情况,而且也是前端开发面试常问的知识点之一。接下来开始组件间通信方式第三弹------$bus,并讲讲分别在Vue2、Vue3中的表现。

Vue2+Vue3组件间通信方式汇总(1)------props

Vue2+Vue3组件间通信方式汇总(2)------$emit

一、全局总线$bus 原型链

归根结底就是在vm,vue原型链上注册一个名叫$bus 的对象,再把this,就是vm实例对象赋给$bus,其中$on $emit $off等就是全局可以读可写的变量,即可实现,相关组件、不相关组件之间数组地传递。

------Vue2 

main.js文件中,Vue实例下,往Vue原型链上注册属性:$bus

//引入Vue
import Vue from 'vue'
//引入App
import App from './App.vue'
//关闭Vue的生产提示
Vue.config.productionTip = false//创建vm
new Vue({el:'#app',render: h => h(App),beforeCreate() {Vue.prototype.$bus = this//注册全局事件总线}
})

其中一个组件:调用全局总线的$emit:

<template><div class="student"><h2>学生姓名:{{name}}</h2><h2>学生性别:{{sex}}</h2><button @click="sendStudentName">把学生名给另一个组件</button></div>
</template><script>export default {name:'Student',data() {return {name:'张三',sex:'男',}},methods:{sendStudentName(){this.$bus.$emit('hello',this.name)}}}
</script><style scoped>.student{background-color: pink;padding: 5px;margin-top: 30px;}
</style>

 另一个组件:调用全局总线的$on:

<template><div class="school"><h2>学校名称:{{name}}</h2><h2>学校地址:{{address}}</h2></div>
</template><script>export default {name:'School',data() {return {name:'学校名',address:'学校地址',}},mounted() {this.$bus.$on('hello',(data) => { //绑定自定义事件hello,并留下回调函数console.log('我收到了'+data);})},beforeDestroy() {this.$bus.$off('hello')			},}
</script><style scoped>.school{background-color: skyblue;padding: 5px;}
</style>
 ------Vue3   不存在vm所以需要引入mitt插件

npm install mitt

在bus.ts文件中引入: 

import mitt from "mitt"
//mitt是一个函数,赋给命名为$bus的变量
const $bus=mitt();
//向外暴露这个变量
export default $bus

 其中一个组件:

使用mitt中的$emit函数,向$on传输数据,第一个参数是和$on第一个参数向对应的字段名,余下的参数是要传输的数据,和Vue实例对象上的$emit,$on用法差不多.

<template><div class="student"><h2>学生姓名:{{name}}</h2><h2>学生性别:{{sex}}</h2><button @click="sendStudentName">把学生名给另一个组件</button></div>
</template><script setup lang="ts">
import ref from "vue"
import $bus from "./bus.ts"
let name=ref("张三")
let sex=ref("男")
let sendStudentName=(name.value)=>{
//使用mitt中的$emit函数,向$on传输数据,第一个参数是和$on第一个参数向对应的字段名,余下的参数是要传输的数据,和Vue实例对象上的$emit,$on用法差不多.$bus.$emit("hello",name.value)
}
</script><style scoped>.student{background-color: pink;padding: 5px;margin-top: 30px;}
</style>

 另一个组件:$on接收数据

<template><div class="student"><h2>学生姓名:{{name}}</h2><h2>学生性别:{{sex}}</h2><button @click="sendStudentName">把学生名给另一个组件</button></div>
</template><script setup lang="ts">
import {ref,onMounted) from "vue"
import $bus from "./bus.ts"
let name=ref("张三")
let sex=ref("男")
onMounted(()=>{$bus.$on("hello",(data)=>{name.value=data})})</script><style scoped>.student{background-color: pink;padding: 5px;margin-top: 30px;}
</style>
http://www.shuangfujiaoyu.com/news/54446.html

相关文章:

  • 网上给别人做网站长沙关键词优化平台
  • 江门建站什么是网络营销公司
  • 网站下一步工作怎么做网址seo优化排名
  • 网站优化是在哪里做修改相城seo网站优化软件
  • 大朗网站建设seo从0到1怎么做
  • 装修设计案例网站各大搜索引擎入口
  • 让别人做网站需要注意什么问题免费的网页设计成品下载
  • Mui框架做网站免费推广的预期效果
  • 手机端网站用dw怎么做百度竞价推广出价技巧
  • 网站建设经费预算百度快照怎么删除
  • 河北网站开发报价seo常用工具包括
  • 用织梦做网站还要不要服务器东莞企业网站排名优化
  • 用自己电脑怎么做网站如何修改百度上面的门店号码
  • 济宁做网站的企业黄桃图片友情链接
  • 文山网站建设哪家好网站如何进行优化
  • php怎么解析wordpressseo排名外包
  • 网站banner图自适应搜狗竞价
  • 公司展示类网站模板免费下载百度指数需求图谱
  • 巨鹿做网站哪家好旺道seo营销软件
  • 网站网站制作需要多少钱温州seo网站推广
  • 商丘购物网站开发设计花钱推广的网络平台
  • 上海阔达网站建设公司seo课程培训要多少钱
  • 做网站要注意哪些问题网站seo分析报告
  • 找人合伙做网站平台环球网广东疫情最新消息
  • thinkphp做的网站怎么预览推广app的方法和策略
  • 济宁政府网站建设网络营销和传统营销有什么区别
  • 建筑网站主页搜狗输入法下载安装
  • 卧龙区网站建设哪家好浏览器打开
  • 网站如何做会员登录页面google下载安卓版
  • 会展门户网站源码靠谱的推广平台有哪些