小编Sag*_*ika的帖子

反应延迟加载 - 何时使用

我有一个非常大的应用程序,它现在的捆绑包大小约为 2mb(3 块左右)。为了缩短加载时间,我决定开始使用相对较新的React Lazy

下面是一个延迟导入的例子:

const Wizard = React.lazy(() => import('./components/wizards/Wizard'));
Run Code Online (Sandbox Code Playgroud)

我理解一般的想法,但我仍然很难理解有什么缺点,除了不时地等待加载一个块。

根据我阅读的内容,我没有理由使用常规导入。

我的问题是:我应该在我的应用程序中的每个组件导入上都使用延迟导入吗?为什么?为什么不?

我很想听听你们的想法。

javascript lazy-loading reactjs webpack

10
推荐指数
1
解决办法
2675
查看次数

反应窗口卸载事件不会触发

我需要使用navigator.sendBeacon()窗口卸载,以便让我的服务器知道客户端已关闭他的窗口。我到处搜索过,但它对我不起作用。

作为参考,这篇文章中的解决方案也不起作用。

我有一个应用程序组件来包装我的整个项目。我试图在其componentDidMount()生命周期方法上设置卸载事件,但它不会触发。

componentDidMount() {
  window.addEventListener("beforeunload", this.unload);
}

componentWillUnmount() {
  window.addEventListener("beforeunload", this.unload);
}

unload(e) {
  e.preventDefault();
  e.returnValue = 'test';
  navigator.sendBeacon(`http://localhost:8080/window-closed/${this.props.username}`);
  return 'test';
}
Run Code Online (Sandbox Code Playgroud)

我希望服务器获得 AJAX 调用,并且窗口在关闭窗口之前提示用户“测试”。实际发生的情况是窗口像往常一样关闭。

注意:return 'test'&e.returnValue = ''语句纯粹用于测试。我只对 AJAX 请求感兴趣。

任何帮助将非常感激。

javascript ajax dom-events reactjs

7
推荐指数
2
解决办法
2万
查看次数

摩卡 ESLint

我正在尝试将 ESLint 用于 mocha,但由于某种原因,规则不适用并且 linting 通过。

我的配置文件:

module.exports = {
    "env": {
        "browser": true,
        "es6": true,
        "node": true,
    },
    "extends": "eslint:recommended",
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly",
        "expect": "true"
    },
    "parserOptions": {
        "ecmaFeatures": {
            "jsx": true
        },
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    overrides: [
        {
            files: [
                "**/*.test.js"
            ],
            env: {
                mocha: true
            },
            plugins: ["mocha"],
            rules: {
                "mocha/no-exclusive-tests": "error",
                "mocha/no-pending-tests": "error"
            }
        }
    ]
};
Run Code Online (Sandbox Code Playgroud)

我的测试文件只包含一行:

it('should throw a lint error')

由于“无挂起测试”规则,linter 应该发现错误,但是当我使用 eslint 运行测试文件时,linting 成功通过。

我不知道为什么。我在网上查了一下,我的配置文件似乎很好。

mocha.js node.js eslint

6
推荐指数
1
解决办法
4491
查看次数

WordPress 联系表格 7 简码不起作用

标题是不言自明的。我使用 WordPress v4.9.8 和 Rocked 免费主题。我安装了联系表单 7,没有其他插件,并将基本表单的短代码放在 footer-1 区域的新 custom_html 小部件中。

它只显示原始简码,而不是表单。还用二十七进行了测试,所以我不相信这是主题的错误。

短代码:[contact-form-7 id="5" title="contact form 1"]

wordpress contact-form-7 shortcode

1
推荐指数
1
解决办法
4816
查看次数