• Vue自定义事件与组件使用原生事件


    1. 一种组件间的通信方式,适用于:子组件 ===> 父组件
    2. 使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的定义与回调在A中)。 
    3. 绑定自定义事件:
      1. 在父组件中:或者
      2. 在父组件的某个方法中:this.$refs.Student.$on("Student",this.incident);
      3. 若想让自定义事件只能触发一次,可以使用once修饰符或$once方法。
    4. 触发自定义事件,在子组件的某个方法中调用:this.$emit("xin",参数)
    5. 解绑自定义事件,在子组件的某个方法中调用:
      1. this.$off("xin");   删除指定事件

      2. this.$off(["xin","xxx","xxx"]);  删除多个事件

      3. this.$off();   删除所有事件

    6. 组件上也可以绑定原生DOM事件,需要使用native修饰符

      1. 例如:

    7. 注意:通过this$refs.xxx.$on('incident',回调函数)绑定自定义事件时,回调要么配置在methods中,要么用箭头函数,否则this执行会指向调用的函数。

     参考

    App.vue

    1. <template>
    2. <div>
    3. <h1>学校名称:{{ name }}h1>
    4. <Student ref="Student" @xin="incident"/>
    5. div>
    6. template>
    7. <script>
    8. import Student from "./components/Student.vue";
    9. export default {
    10. name: "App",
    11. components: {
    12. Student,
    13. },
    14. data() {
    15. return {
    16. name: "希望",
    17. };
    18. },
    19. methods: {
    20. addEvent(){
    21. //通过ref的形式给Student传递参数
    22. //this.$refs.Student.$on("Student",this.incident);
    23. },
    24. incident(...params) {
    25. console.log("111111111111111", params);
    26. this.name = params[0];
    27. },
    28. },
    29. };
    30. script>

    Student.vue

    1. <template>
    2. <div>
    3. <h1>姓名:{{name}}h1>
    4. <h1>年纪:{{age}}h1>
    5. <button @click="age++">点击我曾加数量button>
    6. <button @click="clickEvent">点击触发事件button>
    7. <button @click="cancel">点击取消事件button>
    8. div>
    9. template>
    10. <script>
    11. export default {
    12. name:"Student",
    13. data(){
    14. return {
    15. name:"李义新",
    16. age:10
    17. }
    18. },
    19. methods:{
    20. clickEvent(){
    21. console.log("clickEvent触发了");
    22. this.$emit("xin","希望小学"); //触发事件,第二个参数及后面的参数是事件调用方法的参数
    23. },
    24. cancel(){
    25. this.$off("xin"); //删除指定事件
    26. this.$off(["xin","xxx","xxx"]); //删除多个事件
    27. this.$off(); //删除所有事件
    28. }
    29. }
    30. }
    31. script>

  • 相关阅读:
    76. 最小覆盖子串
    变量用法与特征
    Java学习 --- 面向对象之多态
    Ubuntu 缩减磁盘空间
    协议僵化 or 协议僵化
    Interspeech论文介绍 | OpenASR21挑战赛THUEE队伍系统描述
    商城系统 前后端交互 报文安全性问题 方案设计
    Deployments
    「笔耕不辍」常见远程调用协议
    Laravel 后台管理 Dcat Admin 使用记录
  • 原文地址:https://blog.csdn.net/LYXlyxll/article/details/125999154