Wave组件为antd中许多元素提供了点击扩散特效的支持,例如Button、Checkbox和Radio等。

当父组件重新渲染的时候,会触发子组件componentWillReceiveProps和shouldComponentUpdate两个方法的执行。nextProps会以参数的形式传递给这两个方法,他们之间是否有什么区别与联系?
React或Vue如今已经成为前端开发人员必点的技能。之前已经对React进行过分析,今天便要从源码的角度来分析Vue网络请求的时间点。
Vue使用单文件组件的模式进行开发,vue-loader将script及template的内容加载后通过vue-template-compiler编译成options供Vue.extend()调用,最终通过$mount方法挂载到DOM。
在涉及到checkbox表单元素的单测时,我们会直观的模拟input元素的click事件以触发元素值的改变。但在使用enzyme进行组件单测时却行不通。
正确的做法是模拟input元素的change事件,传递想要的target.value。1
2
3
4
5
6
7
8
9
10
11
12import React from 'react'
import { mount } from 'enzyme'
it('should change checkbox value', () => {
const changeFn = e => console.log(e.target.checked)
const wrapper = mount(<input type="checkbox" onChange={changeFn} />)
wrapper.find('input').simulate('change', {
target: {
checked: true,
},
})
})
enzyme的事件模拟系统并不是我们所想象的那样,操作真实的dom来触发dom级事件而是简单的将simulate转发到props上的相应func。
所以在测试过程中如果我们需要为组件模拟相应的事件,只需要关注组件props上onEventName中的EventName。就像以下情况:1
2<input onBlur={handleBlur} /> // simulate('blur')
<div contentEditable onInput={handleInput}></div> // simulate('input')
2019.2.26日更新enzyme的作者ljharb并不推荐使用 simulate 触发事件的这种写法,因为它有时候会表现的莫名其妙。
作者明确表示我们应该将props的事件监听方法提取出来独立执行,详细见这条Issues
1 | const wrapper = mount(<Slider onDrag={this.handleDrag} />) |
React无疑是目前最流行的前端View库之一。在业务开发中,开发者经常会因为网络请求时间点的选择而纠结,那么这篇文章一定会给你带来一些帮助。
本文所提到的网络请求主要是组件初始化请求,不包括触发式请求(比如点赞请求、评论请求等)。
当我们在浏览器中输入URL后,背后发生了很多巧妙的处理和数据的传递。这个知识点在面试的时候经常被问到,因为它不仅仅考察了求职人员前端技术水平,更查验了他对整个网络通信知识体系的宏观理解。
在使用Vue开发时,我们大多数会使用官方的vue-cli,主要特点包括:
最精简、可运行、基于webpack3构建的Vue(2.x)项目。这能让我们了解到webpack和vue在我们日常开发中所处的地位,帮助我们学习或回顾webpack一些配置属性。汉堡式菜单,由三根平行的直线组成;返回箭头,由两个对称倾斜的箭帽和一条水平直线组成。下面我们就通过使用 CSS 来实现上图的转换效果。
实际效果见banner。
在JavaScript中如果想要实现继承,都是要借助原型链特性。class是ES6新推出的关键字,但在JavaScript中并不存在类的概念,class关键字只是一种语法糖,其本质还是函数。

Update your browser to view this website correctly. Update my browser now