1、回顾

2、线上的mock

http://rap2.taobao.org/

https://www.easy-mock.com/

3、线上接口文档 Swagger

https://swagger.io/

4、react 文档

React 是一个用于构建用户界面的 JavaScript 库

4.1 元素、组件

const element = <h1>Hello, world!</h1>;
// 既不是字符串也不是 HTML。被称为 JSX,是一个 JavaScript 的语法扩展
  • JSX 可以生成 React “元素”。

  • react的关注点分离:React 并没有采用将标记与逻辑进行分离到不同文件这种人为地分离方式,而是通过将二者共同存放在称之为“组件”的松散耦合单元之中,来实现关注点分离。

  • React 不强制要求使用 JSX,也可以使用函数

// jsx
const App = (
<div className="test">
hello jsx
</div>
) // 函数
const App = React.createElement('div', {className: 'test'}, 'hello jsx') // 注意:这是简化过的结构
const element = {
type: 'div',
props: {
className: 'test',
children: 'hello jsx'
}
};
  • React DOM 在渲染所有输入内容之前,默认会进行转义。它可以确保在你的应用中,永远不会注入那些并非自己明确编写的内容。所有的内容在渲染之前都被转换成了字符串。这样可以有效地防止 XSS(cross-site-scripting, 跨站脚本)攻击。

4.2 元素渲染

  • 元素是构成 React 应用的最小砖块

  • 组件是由元素构成的

  • React 只更新它需要更新的部分 --- react内部含有diff算法,采用的虚拟DOM

组件(类组件、函数式组件), 元素就是一个变量,它的值为一段HTML代码

4.3 组件与props

  • 组件名称必须以大写字母开头。组件可以嵌套使用。组件并不是拆分的越小越好,而是越合理越好

  • Props 的只读性

  • 所有 React 组件都必须像纯函数一样保护它们的 props 不被更改。

  • 组件内部可以用状态,组件之间用props

4.4 状态

  • 使用类组件可以设置初始化的数据(状态),函数式组件不能设置状态

  • State 与 props 类似,但是 state 是私有的,并且完全受控于当前组件。

4.5 生命周期

  • 初始化阶段

  • 运行时阶段

  • 销毁阶段

  • 异常处理

4.6 事件处理

React 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同:

React 事件的命名采用小驼峰式(camelCase),而不是纯小写。 onClick onChange

使用 JSX 语法时你需要传入一个函数作为事件处理函数,而不是一个字符串。

在 React 中另一个不同点是你不能通过返回 false 的方式阻止默认行为。

4.7 条件渲染

  • jsx 不 if,jsx可 与、或、三目

  • if 可 JSX

  • 阻断渲染

render () {
if (!flag) {
return false; // return null;
}
}

4.8 列表&key

  • jsx 不 for, 可 map

  • for中可jsx

  • 列表必加key, key为变化的标识,没有变复用

  • 遍历谁 谁加key

  • key 只是在兄弟节点之间必须唯一

render () {
return (
{
this.state.isLoading ? <Loading /> : this.state.prolist.map(item => ())
}
)
}

4.9 表单

  • 受控组件

使 React 的 state 为“唯一数据源”。渲染表单的 React 组件控制着用户输入过程中表单发生的操作。控制取值的表单输入元素就叫做“受控组件”。

通过事件对象event获取值,调用setState更改值,value为表单的值,表单的值为自己组件的状态

handler (event) {
this.setState({
username: event.currentTarget.value
})
} render () {
return (
<div>
<input type="text" value={ this.state.username } onChange = { this.handler.bind(this)}>
</div>
)
}

验证、追踪访问字段以及处理表单提交的完整解决方案: https://jaredpalmer.com/formik

  • 非受控组件

当后端人员未提供接口,前端人员该怎么测试 --mock的更多相关文章

  1. 前端人员不要只知道KFC,你应该了解 BFC、IFC、GFC 和 FFC

    前言 说起KFC,大家都知道是肯德基,但面试官问你什么是BFC.IFC.GFC和FFC的时候,你是否能够像回答KFC是肯德基时的迅速,又或者说后面这些你根本就没听说过,作为一名前端开发工程师,以上这些 ...

  2. 前端人员一定要掌握的PS技巧

    一.PS与前端知多少 一般我们会认为PS是用来修改图片的,这些工作是美工人员做的事不是前端人员做的,其实这样想你就错了,因为在前端人员也是要学会一些简单的关于PS的技巧的,这样就不会应为一点点小小的需 ...

  3. Java后端开发工作 - 写接口

    我在公司的工作内容是,对于一个BS应用,负责服务器端开发工作,Java语言.与前端开发人员合作,最终提供给前端RESTFUL接口,保证页面正常响应. 经验之谈 一个接口可以理解为一个业务逻辑,一个业务 ...

  4. swagger -- 前后端分离的API接口

    文章目录 一.背景 二.swagger介绍 三.在maven+springboot项目中使用swagger 四.swagger在项目中的好处 五.美化界面 参考链接:5分钟学会swagger配置 参考 ...

  5. 【转】无后端(nobackend):前端优先的Web开发【译】

    每个应用都由两样东西构成:该应用独有的功能和所有应用共有的功能,比方说用户注册.登录.忘记密码等.而从用户的角度出发,那些独有的功能归结起来就是用户界面以及系统的行为模式.而在视觉表象之后的功能,用户 ...

  6. 前后端分离后台api接口框架探索

    前言 很久没写文章了,今天有时间,把自己一直以来想说的,写出来,算是一种总结吧!  这篇文章主要说前后端分离模式下(也包括app开发),自己对后台框架和与前端交互的一些理解和看法.     前后端分离 ...

  7. webpack+vue项目实战(四,前端与后端的数据交互和前端展示数据)

    地址:https://segmentfault.com/a/1190000010063757 1.前言 今天要做的,就是在上一篇文章的基础上,进行功能页面的开发.简单点说呢,就是与后端的数据交互和怎么 ...

  8. 前后端分离之【接口文档管理及数据模拟工具docdoc与dochelper】

    前后端分离的常见开发方式是: 后端:接收http请求->根据请求url及params处理对应业务逻辑->将处理结果序列化为json返回 前端:发起http请求并传递相关参数->获取返 ...

  9. 开发FTP服务接口,对外提供接口服务

    注意:本文只适合小文本文件的上传下载,因为post请求是有大小限制的.默认大小是2m,虽然具体数值可以调节,但不适合做大文件的传输 最近公司有这么个需求:以后所有的项目开发中需要使用ftp服务器的地方 ...

  10. Android MTK平台 客制化系统来电界面(屏蔽 InCallUI 提供接口给客户自行展示来电去电页面)

    OS: Android 8.1 需求分析 1.禁止系统来电铃声,提供接口给客户自己播放铃声 2.禁止系统拉起来去电页面(InCallActivity),消息通知客户拉起自己的来去电页面 3.禁止来电消 ...

随机推荐

  1. 使用SonarQube对Unity项目进行代码分析的问题记录

    1.这里不仔细描述每个步骤,只记录一些关键问题,到官网下载解压最新版的SonarQube(我用的是8.9.1). 2.下载安装jdk,这里要注意官网的说明,我一开始下的jdk16,启动Sonar后报错 ...

  2. SQL注入绕过某waf的详细过程。

    0x00起因 看到大家都有绕waf的payload,想了想,这样下去不行啊.总不能找人家要吧,于是我开启了电脑,开始我的bypass之路. 0x01过程 准备完毕后,开始,首先判断注入and 1=1 ...

  3. python之变量

    什么是变量? 用来记录事务的变化状态,计算机模拟人,就需要具备人类某一个功能.你通过记录我的名字年龄等一系列的身份信息,以此和我进行匹配,确定我就是phoebe这个人. 为什么有变量? 游戏里的英雄角 ...

  4. 网页元素间距测量(better rule插件的使用)

    我们在测试UI界面的时候,需要测量各元素大小及元素之间的距离.元素大小,使用F12可以简易的得到数据,但是元素的间距相对来说会比较复杂.这里推荐一款chrome插件better rule,帮助大家测量 ...

  5. 在css 中使用calc并且含有变量

    bottom:~"calc(.9rem + constant(safe-area-inset-bottom))";   bottom:~"calc(.9rem + env ...

  6. cadence-ADE反相器仿真

    Cadence-ADE仿真 连接电路 鼠标移至schematic绘制区域,单击放置inv i键继续添加gnd, vdc(3.3V), vpulse(0-3.3V,Period 1us,Pulse wi ...

  7. Pytorch Cross Entropy

    Entropy Uncetainly measure of surprise higher entropy = less info \[Entropy = -\sum_i P(i)\log P(i) ...

  8. yum随笔

    1.一般企业的服务器都能联网,所以装包都是装系统给的或者是自己去第三方的源,如下: http://mirrors.aliyun.com/repo/Centos-7.repo http://mirror ...

  9. finereport连接sql server

    1.添加jdbc 2.选择sql server 3.jdbc:sqlserver://localhost:1433(localhost=其他IP地址)

  10. kafka-集群搭建及启动脚本

    集群搭建: [root@localhost kafka_2.11-0.10.2.1]# cat config/server.properties | grep -v ^$ | grep -v ^# b ...