expo build:web 生成的包大小非常大,平均为 3mb。
\n我完成了https://docs.expo.io/guides/web-performance/上的步骤。我的应用程序没有图像,因此优化它们没有真正的问题。其他建议的改进变化很小。
\n我使用了捆绑包分析器,并且没有安装任何大尺寸的模块来导致 3mb 捆绑包大小。
\n当我运行构建时,我得到:
\nentrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (48.8 KiB). This can impact web performance.\nEntrypoints:\n app (3.2 MiB)\n static/js/runtime~app.aaee9ccd.js\n static/js/2.a5f54fa3.chunk.js\n static/js/app.98ae2f23.chunk.js\nRun Code Online (Sandbox Code Playgroud)\n其结果是网页的性能极差。
\n如果我在浏览器中的构建结果上运行 google \xe2\x80\x9clightspeed\xe2\x80\x9d (pagespeed Insights),我会得到非常差的初始页面加载评级。
\n我正在考虑一种可能的解决方法,即分支,然后 expo 弹出,然后删除所有不必要的 npm 模块以减少包大小。
\n我\xe2\x80\x99ve还在一些组件上添加了延迟加载,但没有太大改进。
\n您还有其他建议吗?
\n还附上谷歌光速测试结果。
\n\n我真的需要重温我的异步等待和承诺。我希望得到一些建议。
我正在对 firebase firestore 进行异步函数调用。该函数应根据单个输入参数返回一个字符串。
该功能用于 1-1 用户聊天。该功能是创建聊天/查找现有聊天,并返回其ID。
现在,我得到undefined的返回值是openChat并且不知道为什么。除了返回之外,该函数还可以正常工作。
我有两个功能。一个是 React 类组件生命周期方法,另一个是我的 firebase 异步函数。
这是类组件生命周期方法:
async getChatId(userId) {
let chatPromise = new Promise((resolve, reject) => {
resolve(openChat(userId))
})
let chatId = await chatPromise
console.log('chatId', chatId) //UNDEFINED
return chatId
}
async requestChat(userId) {
let getAChat = new Promise((resolve, reject) => {
resolve(this.getChatId(userId))
})
let result = await getAChat
console.log('result', result) //UNDEFINED
}
render() {
return (<button onClick = {() => this.requestChat(userId)}>get id</button>)
}
Run Code Online (Sandbox Code Playgroud)
这是异步函数:
// both my …Run Code Online (Sandbox Code Playgroud) async-await ×1
expo ×1
firebase ×1
javascript ×1
pagespeed ×1
performance ×1
promise ×1
react-native ×1
reactjs ×1