zoukankan      html  css  js  c++  java
  • 07丨Vue组件的核心概念(2):事件

    06.Vue组件的核心概念(2):事件

     子组件通过this.$emit(‘事件源’,接收的参数)

    通过一个事件的demo来演示一下。通过emit传递给父组件

    有一个input绑定了一个change事件,通过handleChange去接收change的回调。

     下面还有两个按钮,一个是重置成功,一个是重置失败。在外层的div上同样的绑定了一个click,也就是说在div里面有3个click事件。

     重置成功是把input和上面的name值重置为空,

    点击重置失败的时候,值并没有被清空。

    两个事件的区别就是重置失败按钮的事件,加了一个.stop

    我们点击了重置失败,上层的div的click=handleDivClick是接收不到。重置失败的点击的行为的

    通常情况下,你不用.stop也可以到达到一个冒泡的效果.就是去手动的阻止冒泡。

    这样点击重置成功,依然是没有成功

    本节代码:

    <template>
      <div>
        name: {{ name || "--" }}
        <br />
        <input :value="name" @change="handleChange" />
        <br />
        <br />
        <div @click="handleDivClick">
          <button @click="handleClick">重置成功</button>&nbsp;&nbsp;&nbsp;
          <button @click.stop="handleClick">重置失败</button>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: "EventDemo",
      props: {
        name: String
      },
      methods: {
        handleChange(e) {
          this.$emit("change", e.target.value);
        },
        handleDivClick() {
          this.$emit("change", "");
        },
        handleClick(e) {
          // 都会失败
          //e.stopPropagation();
        }
      }
    };
    </script>

    课后习题

    我们知道触发事件是通过$.emit触发的,

    那么this.$emit最后的返回值是什么?如果在我们上层组件,它return了一个值,那么我们的this.$emit能不能接收到呢?

    结束

  • 相关阅读:
    three.js 制作一个三维的推箱子游戏
    three.js 郭先生制作太阳系
    three.js 制作魔方
    three.js 欧拉角和四元数
    mysql
    重装系统后需要安装的软件
    python3.7 安装PyQt5
    Java读取文件
    linux 环境jdk安装
    linux 修改用户字符集
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/10742866.html
Copyright © 2011-2022 走看看