博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于element el-button使用$attrs的一个注意要点
阅读量:6227 次
发布时间:2019-06-21

本文共 622 字,大约阅读时间需要 2 分钟。

之前需要对el-button做二次封装,所以就用到vue$attrs$listeners属性,这两个属性在这不细说,可以在 查看详情。

二次封装代码(limit-button)

复制代码

这样封装的好处就是不需要将上层每个属性都写一次prop定义,对listeners也不需要做一层中转emit

发现问题

在某个页面,点击经过封装的limit-button会使页面进行刷新

  1. 起初以为是点击事件的冒泡产生的,就把上层引用的@click去掉:
点击
复制代码

发现还是一样会产生刷新的事件。

  1. 思考可能是$listeners的问题,在mounted中打印也只有@click事件,就算去掉$listeners也不管用。
  2. 后来在浏览器对dom结构的查看,发现limit-button编译后变成:
    可以看到编译后的type变成了warning,查element的源码可发现
    复制代码

可发现是$attrs覆盖了el-button的nativeType

问题简化重现

复制代码

解决方法

type分出来props,然后再通过 prop 引用

复制代码

转载地址:http://cpnna.baihongyu.com/

你可能感兴趣的文章
联合国儿童基金会投资六家区块链初创企业,目标是解决“全球性挑战”
查看>>
期待已久的Firefox 39最终顺利发布
查看>>
世界政府峰会发布了《在区块链上构建超互联未来》文件
查看>>
实现TeX的算法:回首编程技术的过去三十年
查看>>
JUnit 5 Alpha版本简化了单元测试
查看>>
在2019年,如何成为更好的Node.js开发者?
查看>>
英特尔开源分布式深度学习平台Nauta,使用Kubernetes 和 Docker 平台运行
查看>>
【译】Apache Flink 容错机制
查看>>
Java字节码忍者禁术
查看>>
Firefox 50优化Electrolysis
查看>>
CNCF宣布Envoy项目正式毕业
查看>>
dockerfile中apt-install处理continue
查看>>
封装一个FTP工具类
查看>>
【javascript】字符串及判断方法
查看>>
link 与 controller
查看>>
实践:GNU构建系统
查看>>
扩展spring schema文件
查看>>
经典汉诺塔问题
查看>>
html5整理(一)
查看>>
spring-cloud-config的encrypt功能
查看>>