react 记账

2021-11-22  本文已影响0人  RickyWu585
  1. css normalize是让所有浏览器默认样式基本一样,css reset是让默认样式重置
  2. react安装dart-sass
yarn add node-sass@npm:dart-sass
  1. webstorm配合react让css使用src根路径:标记src为根目录
    image.png
  2. react让js使用src为根路径:配置jsconfig.json
"baseUrl": "src",
"include": [
    "src"
  ]
  1. react css 方案:styled-components
yarn add  styled-components
yarn add --dev @types/styled-components // 配合typesricpt
  1. react router 方案:react-router-dom
yarn add react-router-dom.
yarn add --dev  @types/react-router-dom
  1. react 使用 svg
yarn eject
yarn add --dev svg-sprite-loader
{
    test: /\.svg$/,
    use: [
       { loader: 'svg-sprite-loader', options: {} },
       // 'svg-transform-loader',
        'svgo-loader'
     ]
}
const importAll = (requireContext: __WebpackModuleApi.RequireContext)=>{
  requireContext.keys().forEach(requireContext)
}
try {
  importAll(require.context('icons',true,/\.svg$/))
}catch (err){
  console.log(err);
}
{
  loader: 'svgo-loader', options: {
    plugins: [{name: "removeAttrs",params:{attrs: "fill"}}]
  }
}
  1. 如果声明或import了一个变量却不使用,react的treeshaking就会把改代码删掉。这时候需要使用require。因为treeshaking不适用于require
  2. 路由高亮:NavLink标签,activeClassName属性
<NavLink to="/money" activeClassName="selected">
            <Icon name="money"/>
            记账
</NavLink>
  1. styled components 配合组件
    使用的组件里要在需要的地方使用className={props.className}
const MyLayout = styled(Layout)`
  display: flex;
  flex-direction: column;
`
const Layout = (props: any) => {
  return (
    <Wrapper>
      <Main className={props.className}>
        {props.children}
      </Main>
      <Nav/>
    </Wrapper>
  );
};
const onChange = (obj:Partial<typeof selected>)=>{
    setSelected({
      ...selected,
      ...obj
    })
  }
<Route path="/tags/:tag" exact={true}>
            <TagEdit/>
</Route>
type Props = {
  name?: string
} & React.SVGAttributes<SVGAElement>
yarn add classnames
yarn add --dev @types/classnames
上一篇 下一篇

猜你喜欢

热点阅读