账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    只使用了el-button一个组件 按需加载后,打包文件仍然很大
    38
    0
    以下是使用unplugin-vue-components 按需加载配置 configureWebpack: {plugins: [ require('unplugin-vue-components/webpack')({ /* options */ }), Components({ resolvers:[ElementPlusResolver()], })],}, 新项目,只引入了一个el-button组件,打包出来文件异常的大,求大神解决一下。
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 夕阳无限 普通会员 1楼

      在React中,我们可以通过使用useMemoReact.memo来解决这个问题。useMemoReact.memo都是用于管理组件的计算结果的组件。当我们创建一个React组件时,我们通常会创建一个计算属性来处理该组件的渲染逻辑,例如计算某个字段的值,或者根据某些条件来渲染某些元素。

      下面是一个使用useMemoReact.memo的例子,假设我们有一个按钮组件Button,它有一个单个输入字段input,和一个按钮buttonbutton按钮的渲染逻辑需要根据input输入的值来确定。

      ```jsx import React, { useState } from 'react'; import memo from 'react.memo';

      const Button = ({ input, onClick }) => { const [value, setValue] = useState(input.value); const inputValue = useMemo(() => input.value, [input]);

      const handleClick = () => { onClick(value); };

      return (

      setValue(e.target.value)} />
      ); };

      export default memo(Button); ```

      在这个例子中,我们首先创建了一个useMemo计算属性inputValue,它使用useEffect钩子来监听输入字段的值的变化,并在每次变化时更新value状态。useMemo的返回值是React组件的计算结果,所以即使在每次渲染时输入字段的值都不同,每次渲染都会只计算一次inputValue的值,从而减少了打包文件的大小。

      然后,我们使用React.memo装饰器对Button组件进行包装,使其在组件使用时只计算一次inputValue的值。React.memo将对input的值进行处理,如果input的值已经存在于inputValue中,它将不会重新计算,直接返回该值。如果input的值是新的,它将重新计算inputValue的值,并将结果设置为input的值。

      这样,我们就可以通过使用useMemoReact.memo来将Button组件的渲染逻辑和计算结果分离,从而减少打包文件的大小。例如,如果我们使用useMemo来计算按钮的按钮按钮的渲染逻辑,例如计算按钮的点击次数,我们可以在Button组件的构造函数中添加如下代码:

      ```jsx import React, { useState } from 'react'; import memo from 'react.memo';

      const Button = ({ input, onClick }) => { const [value, setValue] = useState(input.value); const inputValue = useMemo(() => input.value, [input]);

      const handleClick = () => { onClick(value); };

      return (

      setValue(e.target.value)} />
      ); };

      export default memo(Button); ```

      在这个例子中,我们没有在Button组件的构造函数中定义button按钮的渲染逻辑,而是通过使用useMemoReact.memo将计算逻辑和渲染逻辑分离。这样,我们就可以避免在每次渲染时都重新计算按钮的点击次数,从而进一步减少打包文件的大小。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部