240 发简信
IP属地:黑龙江
  • 第二个参数可以是引用类型,使用useCallback或者useMemo包一下就可以了。像下面这么写,即使在输入框中进行输入,consoleLog也不会执行,因为consoleLog不会发生改变

    function App () {
    const [name, setName] = useState('');

    const consoleLog = useCallback(() => {
    console.log(111);
    }, [])

    useEffect(() => {
    consoleLog();
    }, [consoleLog])

    return <div>
    111
    <input value={name} onChange={(e) => {
    setName(e.target.value);
    }}/>
    </div>
    }

  • @_小_七_ 另外如果同时设置了强缓存与协商缓存,并且强缓存过期了,命中了协商缓存。那么有没有办法更新cache-control的max-age呢?

    彻底弄懂强缓存与协商缓存

    在工作中,前端代码打包之后的生成的静态资源就要发布到静态服务器上,这时候就要做对这些静态资源做一些运维配置,其中,gzip和设置缓存是必不可少的。这两项是最直接影响到网站性能...

  • @_小_七_ 如果必须要刷新页面,那么设置强缓存也可以吧,只要不加immutable就好了呀

    彻底弄懂强缓存与协商缓存

    在工作中,前端代码打包之后的生成的静态资源就要发布到静态服务器上,这时候就要做对这些静态资源做一些运维配置,其中,gzip和设置缓存是必不可少的。这两项是最直接影响到网站性能...

  • 120
    Vue请求初始化数据放在Created还是Mounted?

    1,首先我们看下官网对created和mounted这个2个生命周期怎么定义的:created:(在实例创建完成后被立即调用。在这一步,实例已完成以下的配置:数据观测 (da...

  • 120
    SSH、SSL与HTTPS

    关于加密 在解释SSH、SSL与HTTPS协议之前我先介绍一下非对称加密协议。在1976年以前,所有的加密都采用对称加密,既A使用某种加密规则对信息加密,B收到信息后逆向加密...

  • 120
    图解:window与BOM的关系

    我们知道,DOM(文档对象模型)是为了操作文档而定义的一组接口,而BOM(浏览器对象模型)则是为了操作浏览器而定义的一组接口。这很好理解,通过命名就能知道。真正有意思的地方在...