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

个性化网站制作网站备案流程解答

个性化网站制作,网站备案流程解答,wordpress自定义短码,大宗商品最新交易平台关于Vue2&3的$emit和$on发布订阅模式 Vue 2 中 $emit 和 $on 的使用Vue 3 中 $emit 和 $on 的使用1. $emit2. $on $emit 和 $on 是 Vue.js 中用于实现组件间通信的方法,不过它们在 Vue 2 和 Vue 3 中的使用场景和方式略有不同,下面分别进行介绍 Vue…

关于Vue2&3的$emit和$on发布订阅模式

  • Vue 2 中 $emit 和 $on 的使用
  • Vue 3 中 $emit 和 $on 的使用
    • 1. $emit
    • 2. $on

$emit$onVue.js 中用于实现组件间通信的方法,不过它们在 Vue 2 和 Vue 3 中的使用场景和方式略有不同,下面分别进行介绍

Vue 2 中 $emit 和 $on 的使用

  1. emit
    作用emit 主要用于子组件向父组件传递数据
    子组件通过触发自定义事件,并携带数据,父组件监听这个自定义事件来接收数据
    子组件:在子组件中使用 this.$emit('eventName', data) 触发自定义事件
<!-- Child.vue -->
<template><button @click="sendData">发送数据给父组件</button>
</template><script>
export default {methods: {sendData() {const data = '这是子组件传递的数据';this.$emit('customEvent', data);}}
};
</script>

父组件:在父组件中使用 v-on 指令监听子组件触发的自定义事件

<!-- Parent.vue -->
<template><div><Child @customEvent="handleEvent" /><p>接收到的数据: {{ receivedData }}</p></div>
</template><script>
import Child from './Child.vue';export default {components: {Child},data() {return {receivedData: ''};},methods: {handleEvent(data) {this.receivedData = data;}}
};
</script>
  1. on
    作用:on 用于监听自定义事件,通常结合事件总线(Event Bus)实现非父子组件间的通信
    事件总线是一个空的 Vue实例,充当事件的发布者和订阅者之间的桥梁
    创建事件总线
// eventBus.js
import Vue from 'vue';
export const eventBus = new Vue();

发送事件:在发送数据的组件中引入事件总线,并使用 $emit 触发自定义事件

<!-- Sender.vue -->
<template><button @click="sendMessage">发送消息</button>
</template><script>
import { eventBus } from './eventBus.js';export default {methods: {sendMessage() {const message = '这是一条消息';eventBus.$emit('messageEvent', message);}}
};
</script>

接收事件:在接收数据的组件中引入事件总线,并使用 $on 监听自定义事件

<!-- Receiver.vue -->
<template><p>接收到的消息: {{ receivedMessage }}</p>
</template><script>
import { eventBus } from './eventBus.js';export default {data() {return {receivedMessage: ''};},created() {eventBus.$on('messageEvent', (message) => {this.receivedMessage = message;});}
};
</script>

Vue 3 中 $emit 和 $on 的使用

1. $emit

作用:和 Vue 2 一样,用于子组件向父组件传递数据,但在 Vue 3 的组合式 API 中,使用 defineEmits 来声明要触发的事件

子组件

<template><button @click="sendData">发送数据给父组件</button>
</template><script setup>
import { defineEmits } from 'vue';const emits = defineEmits(['customEvent']);const sendData = () => {const data = '这是子组件传递的数据';emits('customEvent', data);
};
</script>

父组件:和 Vue 2 类似,使用 v-on 指令监听自定义事件

<template><div><Child @customEvent="handleEvent" /><p>接收到的数据: {{ receivedData }}</p></div>
</template><script setup>
import { ref } from 'vue';
import Child from './Child.vue';const receivedData = ref('');const handleEvent = (data) => {receivedData.value = data;
};
</script>

2. $on

说明:在 Vue 3 中,官方推荐使用 mitt 或 EventEmitter 等第三方库来替代 Vue 2 中的事件总线。不过,如果你使用的是选项式 API,仍然可以使用类似 Vue 2 的方式创建事件总线并使用 $on 和 $emit。如果使用组合式 API,通常会使用第三方库来实现非父子组件间的通信

安装 mitt 试例

npm install mitt

创建事件总线

// eventBus.js
import mitt from 'mitt';
export const eventBus = mitt();

发送事件

<template><button @click="sendMessage">发送消息</button>
</template><script setup>
import { eventBus } from './eventBus.js';const sendMessage = () => {const message = '这是一条消息';eventBus.emit('messageEvent', message);
};
</script>

接收事件

<template><p>接收到的消息: {{ receivedMessage }}</p>
</template><script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { eventBus } from './eventBus.js';const receivedMessage = ref('');const handleMessage = (message) => {receivedMessage.value = message;
};onMounted(() => {eventBus.on('messageEvent', handleMessage);
});onUnmounted(() => {eventBus.off('messageEvent', handleMessage);
});
</script>

综上所述
$emit 主要用于子组件向父组件传递数据,而 $on 用于监听自定义事件


文章转载自:

http://Q8OhMo6v.tndxg.cn
http://6NGaADO6.tndxg.cn
http://RpUn94v1.tndxg.cn
http://VPnTkGcN.tndxg.cn
http://NcKafbQB.tndxg.cn
http://bPZ0VxuL.tndxg.cn
http://elzd2Ct4.tndxg.cn
http://Rl04vyQa.tndxg.cn
http://hHVNWhiY.tndxg.cn
http://tUZPnwxp.tndxg.cn
http://b3xTRJLu.tndxg.cn
http://OnoNK4Uv.tndxg.cn
http://KdSBkbRj.tndxg.cn
http://3cpLrHPg.tndxg.cn
http://2NFdNdrw.tndxg.cn
http://6CETAXdC.tndxg.cn
http://qyTLcPla.tndxg.cn
http://pOqOJpXe.tndxg.cn
http://vKy3zLSq.tndxg.cn
http://7B2N9DvB.tndxg.cn
http://hJ0254ld.tndxg.cn
http://DveAQHqs.tndxg.cn
http://P5kX9HiC.tndxg.cn
http://0iWOpYVZ.tndxg.cn
http://SgPMoj35.tndxg.cn
http://4QKMhcm1.tndxg.cn
http://pOsuArgR.tndxg.cn
http://qUMLahfz.tndxg.cn
http://1vMl8rIN.tndxg.cn
http://lIKTOYZH.tndxg.cn
http://www.dtcms.com/wzjs/594843.html

相关文章:

  • 厦门外贸公司做网站手机小程序开发教程
  • 龙岩北京网站建设商务办公名片
  • 许昌住房和城乡建设局网站手机怎么自己创造网站
  • 网站上的html内容怎么修改武安市精品网站开发
  • 做网盟的网站必须备案龙岩网站优化费用
  • 备案查询站长工具世纪购网站开发招聘
  • 网站如果实现微信支付吗网页设计个人信息
  • 网页预览手机网站效果wordpress 更改icon
  • 专业建站服务公司seo 网站推广入门
  • 重庆做网站优化网站建设需求说明
  • 网站开发中期检查wordpress知名网站
  • 长春网站建设模板样式中国招采网招标公告
  • 有网站地图的网站汕头小程序开发
  • 沈阳企业网站排名优化推广普通话喜迎二十
  • 网站建设小组实验报告装潢建筑公司网站设计
  • 免费做网站的方法阜宁做网站哪家公司好
  • 网站开发和运行模式的搭建甘肃农村网站建设
  • 做海报找图片的网站网站布局方案
  • 淄博临淄建设局网站商城网站建设 上海
  • 手机制作价格表的软件移投界seo
  • 360网站上做宣传要多少钱网站备案流程多少钱
  • 九江城乡建设网站为什么打不开如何自学编程
  • 网站建设递进发展趋势杭州百度seo代理
  • 怎样在本机建设网站wordpress对中文支持
  • 重庆网站优化排名360建筑网发布的简历
  • 太原云建站模板个人网站模板的优缺点
  • 个人网站设计作品html杭州公司官方网站制作
  • 用wordpress建站之后如何优化创意网红蛋糕
  • 深圳网站建设服务提供商上海营销型网站
  • 网站权重低wordpress万能主题