Vue 使用细节收集
JSX 中 on 开头的属性名
在用 elementui 中的 el-upload 的时候,他们组件中有一个属性 on-change ,也不知道谁想出来的属性名,太扯淡了,非要 on 开头,我开始的代码如下:
<el-upload
        action="/"
        list-type="picture-card"
        class="createopt__picupload"
        auto-upload={false}
        show-file-list={false}
        file-list={cellValue}
        accept=".gif,.png,.jpg,.jpeg"
        on-change={this.createOptPicUploadChange}
>
        <i class="el-icon-plus"></i>
</el-upload>
发现并不执行 createOptPicUploadChange 这个函数,看了一下编译后的代码,编译如下,居然把 on-change 编译到 on 里面去了,不正常,我要编译到 attrs 中才算正常啊
        "el-upload",
              {
                attrs: {
                  action: "/",
                  "list-type": "picture-card",
                  "auto-upload": false,
                  "show-file-list": false,
                  "file-list": cellValue,
                  accept: ".gif,.png,.jpg,.jpeg"
                },
                "class": "createopt__picupload",
                 on: {
                  "change": _this.createOptPicUploadChange
                }
              },
后来我看了一下 babel-plugin-transform-vue-jsx 中编译源码,发现了关键字 props|domProps|on|nativeOn|hook,居然有 on 开头的就编译成了函数,我就改成了 propsOn-change={this.createOptPicUploadChange},再看编译结果:
              "el-upload",
              {
                attrs: {
                  action: "/",
                  "list-type": "picture-card",
                  "auto-upload": false,
                  "show-file-list": false,
                  "file-list": cellValue,
                  accept: ".gif,.png,.jpg,.jpeg"
                },
                "class": "createopt__picupload", props: {
                  "on-change": _this.createOptPicUploadChange
                }
              },
on-change 跑到 props 下了,再执行,成功。多看源码还是有好处的....
style 标签中深度作用选择器
以前就发现一个问题,当在 style 上加一个 scoped 的时候,子标签、孙子标签里面的样式就无法生效了,一直找不到解决方式,今天看文档找到了,在需要受影响的子标签或者是孙子标签的父标签后面加上 >>> 或者 /deep/,Scss  中无法解析  >>>。例如:
注意:选择器和 >>> 或者 /deep/ 之间有空格
.aaa /deep/ {
    .bbb{
    }
}
Vue 使用细节收集的更多相关文章
- Vue.js依赖收集
		写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ... 
- 深入浅出Vue基于“依赖收集”的响应式原理(转)
		add by zhj: 文章写的很通俗易懂,明白了Object.defineProperty的用法 原文:https://zhuanlan.zhihu.com/p/29318017 每当问到VueJS ... 
- css 细节收集
		细节1……………………………………………………………………………… 一.当文字与图片在一行,需要将文字与图片底对齐,需要这样写: <li>记住密码<img src="&qu ... 
- vue经验 - 细节小知识点汇总(更新中...)
		1. $refs 数据这么绑定的: 然后在created中抛出来,猜猜看看打印的是两个什么? 结果如下: 第一个跑出来了,第二个,却undefiend,没有东西?!... 后来去官网查看$refs的解 ... 
- vue的细节
		1.如果使用路由跳转到别的界面的话,例如从文章list页面跳转到具体文章查看详情页,查看某一个具体就需要传递那个文章的id去后台查询, this.$router.push的params方法可以实现传递 ... 
- vue路由细节探讨
		1.使用router-link 不会让页面刷新,使用a标签会使页面刷新.2.router-link 里面的to="/路由地址" tag=""自定义标签" ... 
- Vue依赖收集引发的问题
		问题背景 在我们的项目中有一个可视化配置的模块,是通过go.js生成canvas来实现的.但是,我们发现这个模块在浏览器中经常会引起该tab页崩溃.开启chrome的任务管理器一看,进入该页面内存和c ... 
- 读Vue源码 (依赖收集与派发更新)
		vue的依赖收集是定义在defineReactive方法中,通过Object.defineProperty来设置getter,红字部分主要做依赖收集,先判断了Dep.target如果有的情况会执行红字 ... 
- MVVM以及vue的双向绑定
		原文:https://www.cnblogs.com/onepixel/p/6034307.html MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核 ... 
随机推荐
- HBuilder开发iPad程序不能全屏显示的解决方法
			HBuilder开发iPad程序不能全屏显示的解决方法: targets选择HBuilder=>Deployment Info=> devices选择Universal即可 
- Android Design Support Library(二)用NavigationView实现抽屉菜单界面
			NavigationView在MD设计中非常重要,之前Google也提出了使用DrawerLayout来实现导航抽屉.这次,在Android Design Support Library中,Googl ... 
- 类与接口(五)java多态、方法重写、隐藏
			一.Java多态性 面向对象的三大特性:封装.继承.多态. 多态的类型,分为以下两种: 编译时多态: 指的是 方法重载.编译时多态是在编译时确定调用处选择那个重载方法,所以也叫 静态多态,算不上真正的 ... 
- Array常用方法总结
			一.[常用语法] 1.1.数组的创建var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定 ... 
- PHP多进程编程之僵尸进程问题
			上一篇说到了使用pcntl_fork函数可以让PHP实现多进程并发或者异步处理的效果.那么问题是我们产生的进程需要去控制,而不能置之不理.最基本的方式就是fork进程和杀死进程. 通过利用pcntl_ ... 
- LeetCode题解之Pascal's Triangle II
			1.题目描述 2.题目分析 题目要求返回杨辉三角的某一行,需要将杨辉三角的某行的全部计算出来. 3.代码实现 vector<int> getRow(int rowIndex) { ) ,) ... 
- SHELL调用存储过程
			1.测试用例 #!/bin/sh #日期变量可设成传入参数 #exec_date=`date +"%Y%m%d"` # -S 设置无提示模式, 该模式隐藏命令的 SQL*Plus ... 
- Security Software Engineer
			Security Software Engineer Are you excited to be part of the VR revolution and work on cutting edge ... 
- [Spark RDD_add_1] groupByKey & reduceBykey 的区别
			[groupByKey & reduceBykey 的区别] 在都能实现相同功能的情况下优先使用 reduceBykey Combine 是为了减少网络负载 1. groupByKey 是没有 ... 
- laravel 实现思路以及各组件原理
			laravel 内核是个IOC容器,IOC是把本来自己实例化的对象. 通过在容器里注册,通过容器来进行实例化. laravel队列用的是redis的列表来实现. 
