• Vue中自定义事件


    事件我们并不陌生,以前我们都是用的框架帮我们配置好的事件,我们称为原生事件。通过v-on:或者@绑定事件,事件触发时执行对应的程序。

    今天我们自己来创建一个事件,我们要先知道事件的三要素:事件源 target 、事件类型type 、监听器handler

    在自定义事件中,事件源就是我们设置的组件,事件类型我们自己命名,监听器就是事件绑定的那个函数,我们想要完成一个组件的完成,我们需要在组件中用到vm对象原型上的一个方法:this.$emit("事件类型名","要给触发的事件的函数handler传入值(可省)")

    我们来试一下:

    创建box1.vue组件并设置一个事件:事件名为myevent,事件触发条件为msg=5时才触发。

    1. <script>
    2. export default{
    3. data() {
    4. return {
    5. msg:1
    6. }
    7. },
    8. methods: {
    9. add(){
    10. this.msg++
    11. if (this.msg==5) {
    12. this.$emit("myevent",1,"参数2")
    13. }
    14. }
    15. },
    16. }
    17. script>
    18. <style>
    19. .box1{
    20. width: 100px;
    21. height: 100px;
    22. background-color: aqua;
    23. }
    24. style>

    在app.vue组件中,导入注册box1组件,并使用其myevent事件:绑定的监听器为fn函数,事件触发时控制台打印信息和我们用arguments接收传入的参数。

    1. <script>
    2. import Box1 from "@/components/box1.vue"
    3. export default {
    4. methods: {
    5. fn(){
    6. console.log("事件触发了",arguments);
    7. }
    8. },
    9. components:{
    10. Box1,
    11. }
    12. }
    13. script>
    14. <style>
    15. .app{
    16. width: 400px;
    17. height: 400px;
    18. background-color: burlywood;
    19. }
    20. style>

    效果:

    二、也可以通过this.$emit()这个方法来实现给组件标签间接绑定原生事件,让子组件的原生事件触发时调用父组件的函数。

    代码展示:创建box2.vue组件并当组件内事件触发时创建事件。

    1. <script>
    2. export default{
    3. methods: {
    4. fn(){
    5. this.$emit("click1")
    6. }
    7. },
    8. }
    9. script>
    10. <style>
    11. .box2{
    12. width: 200px;
    13. height: 200px;
    14. background-color: yellow;
    15. }
    16. style>

    在app.vue组件中,导入注册box2组件,并为创建的对象提供函数。

    1. <script>
    2. import Box2 from "@/components/box2.vue"
    3. export default {
    4. methods: {
    5. fn1(){
    6. console.log("原生");
    7. }
    8. },
    9. components:{
    10. Box2
    11. }
    12. }
    13. script>
    14. <style>
    15. .app{
    16. width: 400px;
    17. height: 400px;
    18. background-color: burlywood;
    19. }
    20. style>

     三、事件修饰符.native,通过这个可以直接在组件上绑定原生属性。

    如:给上面的Box2绑定点击事件

  • 相关阅读:
    编译安装oh-my-zsh
    时空数据预测输入数据转换问题
    JAVA小游戏拼图
    7月开始!2022年洪山区“5G+工业互联网”技术改造奖励申报条件和申报材料
    深度学习从入门到入土
    (AS笔记)Android的原生网络请求工具类——亲测可用
    前端构建工具 webpack 笔记
    nginx部署vue前端项目,访问报错500 Internal Server Error
    map 详细说明
    上海数字经济 “十四五” | 原生信仰者听见的历史潮流轰鸣声
  • 原文地址:https://blog.csdn.net/m0_59345890/article/details/126730572