我有一个非常大的应用程序,它现在的捆绑包大小约为 2mb(3 块左右)。为了缩短加载时间,我决定开始使用相对较新的React Lazy。
下面是一个延迟导入的例子:
const Wizard = React.lazy(() => import('./components/wizards/Wizard'));
Run Code Online (Sandbox Code Playgroud)
我理解一般的想法,但我仍然很难理解有什么缺点,除了不时地等待加载一个块。
根据我阅读的内容,我没有理由使用常规导入。
我的问题是:我应该在我的应用程序中的每个组件导入上都使用延迟导入吗?为什么?为什么不?
我很想听听你们的想法。
我需要使用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 请求感兴趣。
任何帮助将非常感激。
我正在尝试将 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 成功通过。
我不知道为什么。我在网上查了一下,我的配置文件似乎很好。
标题是不言自明的。我使用 WordPress v4.9.8 和 Rocked 免费主题。我安装了联系表单 7,没有其他插件,并将基本表单的短代码放在 footer-1 区域的新 custom_html 小部件中。
它只显示原始简码,而不是表单。还用二十七进行了测试,所以我不相信这是主题的错误。
短代码:[contact-form-7 id="5" title="contact form 1"]
javascript ×2
reactjs ×2
ajax ×1
dom-events ×1
eslint ×1
lazy-loading ×1
mocha.js ×1
node.js ×1
shortcode ×1
webpack ×1
wordpress ×1