有个疑问 vue 写的组件,修改父组件的值,需要用到$emit,但是UI框架并不需要我这么做,要如何写才能像UI框架那样呢?

vue 写组件
props接收了参数之后 如果需要修改参数
例如下图
图片描述

需要使用 $emit来修改
这就需要父组件含有 add 和 minus方法
这里我有一个疑问 那些UI框架又是怎么做的呢?
在使用element-ui之类的 UI框架时 并没有需要我创建这些方法 例如 add minus
这样就需要多创建两个方法了
要怎么做才能直接修改 不需要通过$emit

例如 图片描述

如上 element-ui的InputNumber
并没有需要填写 add 和 minus 但是能够正常的改变值

阅读 2.2k
2 个回答

至少element-ui、iview还是有用到$emit的,不过是不需要我们自己来$emit
比如下面代码中的@current-change="handleCurrentChange"
代码地址:http://element-cn.eleme.io/#/...

<template>
  <el-table
    ref="singleTable"
    :data="tableData"
    highlight-current-row
    @current-change="handleCurrentChange"
    style="width: 100%">
    <el-table-column
      type="index"
      width="50">
    </el-table-column>
    <el-table-column
      property="date"
      label="日期"
      width="120">
    </el-table-column>
    <el-table-column
      property="name"
      label="姓名"
      width="120">
    </el-table-column>
    <el-table-column
      property="address"
      label="地址">
    </el-table-column>
  </el-table>
  <div style="margin-top: 20px">
    <el-button @click="setCurrent(tableData[1])">选中第二行</el-button>
    <el-button @click="setCurrent()">取消选择</el-button>
  </div>
</template>

在el-table组件中是通过下面这段代码实现的

table.$emit('current-change', null, oldCurrentRow);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题