react
HainesFreeman
function
展开
-
React: 函数式组件如何使用props
背景函数式组件本质上是一个函数,既然是函数就可以接收参数,通过这种形式来接收props代码如图所示,在Person组件中传递来3个属性:name,sex,age,React会将这些属性处理成一个对象传递到函数式组件的形参中,在函数式组件打印props,结果如下:添加上参数类型限制,完整代码:总结组件三大核心属性:refs,state,props,在函数式组件可以直接使用props,但是想使用refs和state需要借助hooks...原创 2022-04-23 18:21:36 · 2878 阅读 · 0 评论 -
React: state和setState理解
问题引入:我们改变了isHot的值,值确实变了,但是视图没更新解决:React中规定:state状态不可以直接更改,要借助内置的api去更改,即:setState方法即下面的这种方式:问题:setState是替代还是合并? --- 答案是合并问题:constructor调用几次?render函数调用几次?changeWeather调用几次?答案:constructor是1次,即初始化的那次;render是1+n次,1是初始化调用那次,n是setState调..原创 2022-04-23 17:59:26 · 1288 阅读 · 0 评论 -
React: 深入类中this对象的理解
简单组件&复杂组件定义如果这个组件包含state状态,则为复杂组件,反之则为简单组件。有状态组件的基础语法:放在构造函数constructor里面,加一个状态state属性。class Timer extends React.Component { constructor(props) { super(props); this.state = { seconds: 0 }; } tick() { this.setState(state =>原创 2022-04-23 16:48:29 · 794 阅读 · 0 评论 -
React:类式组件
语法代码:class HelloMessage extends React.Component { render() { return ( <div> Hello {this.props.name} </div> ); }}ReactDOM.render( <HelloMessage name="Taylor" />, document.getElementById('hello-exam原创 2022-04-23 15:19:54 · 697 阅读 · 0 评论 -
React: 样式模块化
背景:主要防止css命名空间的污染方案假设现在有一个Hello.jsx和World.jsx两个组件,只需要在.css后缀前再加一个module,即:Hello.module.css 或则 world.module.css,当然你也可以使用scss,或则使用css in js代码演示:...原创 2022-04-23 11:19:03 · 868 阅读 · 0 评论 -
再议:通用功能页面的组件化编码流程
背景我们传统开发功能页面时候,往往会拆分为多个组件来开发,这样不仅项目的结构比较清晰,而且易于代码维护和团队协作。所以组件化编码真的特别重要,那么在进行组件化编码的过程中,如果进行组件化拆分?具有的编码流程是怎样的?今天就给大家来介绍一下。流程拆分组件如下可以拆分以下3个组件: 容器组件(红色)、头部组件Header、列表list组件实现静态组件实现静态页面的效果,主要是写: html + css实现动态组件动态实现初始化数据的展示 动态实现js交互效果(比如点击事件)原创 2022-04-23 10:21:49 · 132 阅读 · 0 评论 -
ES6:类的基本知识
基本语法:// 创建一个Person类class Person { // 构造器方法 constructor(name,age){ this.name = name this.age = age }}let p1 = new Person('jack',16)let p2 = new Person('tom',18)console.log('p1:',p1) // p1:,{"name":"jack","age":16}console.log('p2:',p2)原创 2022-04-22 17:47:52 · 328 阅读 · 0 评论 -
React中组件和模块,模块化和组件化的理解
模块理解:向外提供特定功能的js程序,一般一个模块是一个js文件 为什么要拆分:业务逐渐复杂的时候,代码不好维护 好处:易于维护、提高复用性组件组件其实要比模块高一个层级,或则说模块其实是组件的子集。理解:用来实现局部效果功能的代码和资源的集合(html/css/js/img等) 为什么?业务逐渐复杂的时候,代码不好维护 好处:易于维护、提高复用性模块化当一个应用的js都是使用模块来编写的,这个应用就是模块化应用。组件化当一个应用都是使用组件化来编写的,这个应用就是组件化原创 2022-04-22 16:52:41 · 405 阅读 · 0 评论 -
antd 组件Input 输入按字节限制长度(汉字占2个字节,字母1个字节)
文案上限为20个字符(10个汉字)”产品需求一个小括号,开发实现一下子复杂了很多。 /** 用户名校验 */ const nameValidator = (rule, value, callback) => { let len = 0; for (let i = 0; i < value.length; i++) { if (value.charCodeAt(i) > 127 || value.charCodeAt(i) == 9原创 2021-04-22 10:15:31 · 3571 阅读 · 1 评论 -
antd下拉框选择了值,却仍然触发了rules里面的必选项
问题:下拉框明明选择了解决:去掉它原创 2021-04-14 14:52:46 · 2020 阅读 · 0 评论 -
react数组变了,但是视图没有更新
使用解构赋值就好,浅拷贝 // 添加部门设置 addDuty = () => { console.log(123) const { positionInfos } = this.state if(deptInfos.length >= 10) return message.error('最多只能添加10条!'); const addDutyList = positionInfos.concat([{ dutyId:'', posit原创 2021-04-12 23:17:29 · 1411 阅读 · 0 评论 -
Antd Select组件结合使用出现must set key for <rc-animate> children问题
一、以下情况可能导致错误发生出现这个问题的首要条件是因为Select的mode 设置成multipleortags1. Select的defaultValue使用了空字符串例如:const emptyValue = ''const emptyValueArr = ['1', '']<Select mode="tags" defaultValue= emptyValue || emptyValueArr> { [1, 2].m..原创 2021-04-12 23:14:27 · 1217 阅读 · 0 评论 -
react 路由跳转刷新页面参数消失
this.props.history.push({ pathname: furl, search: 'ssr2' }) 获取const data = this.props.location.search //地址栏截取 console.log(data) const param = data.split('?')[1] console.log(param)原创 2020-05-15 18:38:51 · 2790 阅读 · 1 评论 -
使用react进行父子组件传值
在单页面里面,父子组件传值是比较常见的,之前一直用vue开发,今天研究了一下react的父子组件传值,和vue差不多的思路,父组件向子组件传值,父通过初始state,子组件通过this.props进行接收就可以了;子组件向父组件传值需要绑定一个事件,然后事件是父组件传递过来的this.props.event来进行值的更替,话不多说,上代码:父组件向子组件传值:父组件Comment.js: 1 2 3 4 5 6 7 8 9原创 2020-05-13 15:59:35 · 325 阅读 · 0 评论 -
Ant-Design中Table组件rowSelection方法的一些坑
<Table rowSelection={rowSelection} columns={columns} dataSource={data} />在 <Table/> 组件中有 rowSelection={rowSelection} 方法,可以让Table的第一列成为联动的选择框。API中说到通过 rowSelection.selectedRowKeys 来控制选...原创 2019-08-15 14:42:07 · 2197 阅读 · 0 评论 -
React Router页面传值的三种方法
注:本文示例React Router版本为:3.0.2,使用前请注意检查版本一.props.params官方例子使用React router定义路由时,我们可以给<Route>指定一个path,然后指定通配符可以携带参数到指定的path:首先定义路由到UserPage页面:import { Router,Route,hashHistory} from 'react-...原创 2019-03-03 17:21:53 · 357 阅读 · 0 评论 -
react全局变量的设置
新建一个 util文件夾 ---> tool.jsxwindow._= { /** * 存储localStorage */ setStore:(name, content) =>{ if (!name) return; if (typeof content !== 'string') { content = JSON.stringify(c...原创 2019-01-10 15:16:42 · 20586 阅读 · 1 评论 -
react的es6最新中表单详解,input select下值的获取
首先我们应该清楚两个东西,state和setState ,一个是状态,一个是设置状态,我们就可以在状态中添加一些默认的数据,然后用setState来改变state,此时,会触发render()从新来渲染页面import React, { Component } from 'react';class App extends Component {constructor(props){ ...原创 2018-11-13 16:29:51 · 1237 阅读 · 0 评论