一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第5天,点击查看活动详情。
1、className设置多个class
import classNames from 'classnames';
<div className={classNames("class1", "class2")}></div>
需要安装classnames包:npm install classnames --save
2、路由传参
props.history.push({pathname: 'xxx', state: {'phone': 123}})
获取: props.history.location.state.phone
3、和后端联调时,可以复制curl给他,更方便~:
4、antd使用:
- ModalForm 不要footer 使用submitter={false}
<ModalForm submitter={false} />
- 在modal中嵌套table,table的request不会在每次打开弹窗时请求数据
解决: 加一个visible ? (,,,) : null的 判断,visible是控制弹窗显示的变量
- 自定义rules
const nickNameReg = /^[0-9a-zA-Z\u4e00-\u9fa5]*$/g;
rules={[
{
pattern: nickNameReg,
message: '不支持特殊字符',
},
]}
5、umijs的index.html文件对应的是 document.ejs
6、umijs里的 document.ejs 需要引用 config.ts的变量 应该这样写:
"<%= context.config.define.MOBILE_HOST_PATH %>"
通用写法: "<%= context.config.xxx %>"
模板里可通过 context 来获取到 umi 提供的变量,context 包含:
route,路由信息,需要打包出多个静态 HTML 时(即配置了 exportStatic 时)有效config,用户配置信息
官方文档: umijs.org/zh-CN/docs/…
7、react中 在index.html中获取环境变量方法 :
"<%=xxxx %>"
8、控制台一行代码写完按回车就是执行 当按shift+enter 则就是换行
9、安装子包
git submodule init
git submodule update --remote
10、解决浏览器自动填充账号和密码的问题。
在input属性type为text的标签上添加下面的属性
autoComplete="off"
在input属性type为password的标签上添加下面的属性
autoComplete="new-password"
11、chorme截长图:
Command + shift + p : 输入 capture full xxx 按回车
12、react中阻止冒泡:
e.stopPropagation()
e.nativeEvent.stopImmediatePropagation()
13、想创建的变量名和对象的属性名不一致,可以这么写:
const {a:a1} = obj;
console.log(a1);// 1
14、在useEffect中不能用async await: 可以自己封装一下:
const useAsyncEffect = (effect: () => Promise<void | (() => void)>,dependencies?: any[]) => {
return useEffect(() => {
const cleanupPromise = effect();
return () => {
cleanupPromise.then((cleanup) => cleanup && cleanup());
};
}, dependencies);
};