我正在使用Meteor&React.js开发Web应用程序。 我需要您的建议。
问题是: 如何在Meteor上构建非常大的单页应用程序?
我遇到了诸如性能,js和css文件的重量(我有很多组件)之类的问题。 有没有办法分离组件并仅在必要时(当用户执行任何操作时)加载任何组件?
还有一个想法来创建一个单页应用程序,该应用程序将具有多个彼此独立的子应用程序。例如,用户单击子应用程序的图标,然后在主块“内容”中打开子应用程序,这一切都发生在单页应用程序内部。 这个想法是,每个子应用程序都托管在单独的服务器上,并具有单独的数据库,后端和前端。 是否可以使用iframe进行此操作?还是一个坏主意? 所有这些子应用程序都可以通过父应用程序相互交互很重要。
我在等待您的建议和想法。非常感谢!
答案 0 :(得分:1)
对于您的广泛问题的第一部分,我认为您可以研究动态导入。是的,您可以将一个大应用程序分成较小的组件或成组的组件,仅按需加载,而不必将它们作为初始捆绑包的一部分:https://blog.meteor.com/dynamic-imports-in-meteor-1-5-c6130419c3cd
在图中,startup =“ general”捆绑包,异步用于动态负载。如果您有很多CSS ...那么您有太多CSS,您可能应该只拥有Bootstrap和主题CSS这样的框架CSS,并且...如果您使用react,则可以添加程序内联样式。
对于您问题的第二部分,如果您想要单独的数据库,服务器和应用程序...我真的看不到与第一个问题/环境的联系。您是指具有各种功能/应用程序链接(按钮)的仪表板吗?像在Salesforce或任何其他CRM中一样,或在Firebase中? 管理多个应用程序可能是一场噩梦。使多个应用程序进行交互……除非它们具有相同的数据库,否则您将无法共享数据和状态,这将是一场噩梦。所以... ...如果您要在同一“门户”中显示yahoo电子邮件和gmail,我认为iframe将是您的最佳选择,因为这两个平台共享0个资源和数据。
请让我问您,您在哪里/如何看到性能问题?您是否使用Kadira之类的工具进行监视?您有很多发布/订阅吗?您是否使用Redux来存储本地数据?您在哪里使用分页?从理论上讲,考虑到压缩和当今LTE在移动设备上的速度,组件和CSS的数量微不足道。我还使用Meteor / React构建了一个具有供稿和聊天等功能的全尺寸社交平台,并且我只有3种出版物,每个都有25个初始文档。您知道发布*文件数量方面的负担吗?