持久化
const useTags = () => {
const [tags, setTags] = useState<TagEntity[]>([]);
useEffect(() => {
setTags(JSON.parse(window.localStorage.getItem("tags")||'[]'));
},[]); // 依赖数据为空数组时,表示初始化,初始化从local读取
useEffect(() => {
window.localStorage.setItem("tags", JSON.stringify(tags));
},[tags]); // tags引用更新时触发,这也就要求,更新tags,不能只更新值,而是要更新tags的地址
……
}
其他
- 安装classnames支持库
yarn add classnames
yarn add --dev @types/classnames
使用,classnames可以合并class
import classnames from 'classnames';
……
const Icon = (props: Props) => {
const { name, className, ...rest } = props;
return (<svg className={classnames("icon", className)} {...rest}>
<use xlinkHref={'#' + props.name}/>
</svg>);
}
……
- 日期时间库 dayjs
yarn add dayjs
import dayjs from 'dayjs'