问题标签 [plugin-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - JQuery Plugin Pattern - 多个脚本的代码组织
我正在使用基于此处列出的轻量级插件模式的 JQuery 开发客户端。
我一直在处理一个文件,但由于超过 1000 行代码,它变得臃肿不堪。所以我决定拆分脚本,但我无法找到使用 jQuery 保存多个脚本的最佳实践。
我的主要脚本如下:
HTML如下:
问题:我需要在单独的文件中定义 otherclass。实现这一目标的最佳方法是什么?如果插件模式不打算有多个脚本,还有其他适合这个的做法吗?
谢谢你。
reactjs - React/Redux 中的插件/小部件模式以动态添加组件
我有一个使用 React/Redux 的应用程序。我使用 Electron 将其打包为一个独立的应用程序。我目前正在构建基础以允许用户将自己的插件或小部件添加到应用程序中。由于我使用的是 Redux,我想继续使用 Redux 来跟踪安装的内容以及它为应用程序带来的更改/新功能。
在我深入探讨我的问题之前,让我们举个例子。我的核心应用程序有一个带有“控制”按钮的侧边栏。核心有两个按钮,但我想允许插件在那里添加自己的按钮。当然,我可以手动继续,在按钮侧边栏组件的 js 文件中导入插件并手动添加按钮,但这会破坏可插入性的目的。所以我能想到的最好和最简单的解决方案是从插件代码中分派一个动作,例如 ADD_SIDEBAR_BUTTON 它基本上将一个带有按钮元数据的对象添加到按钮数组(包括那些是核心的)。这个:
虽然这可以工作,但它极大地限制了按钮的功能,因为按钮的实际逻辑和 jsx 将来自核心应用程序。在实践中,我只是渴望让插件传递一个 React 组件,这将使插件在事件、生命周期的完全控制等方面有很大的自由度……但是传递除了普通对象之外的任何东西都是 Redux不,不。
另一种解决方案是让插件开发人员创建一个带有导出类的文件,并使用 redux 提供它的路径,如下所示:
然后插件的一个 initialize() 函数将调度操作并传递核心导入按钮所需的信息(如果没有正确完成,我也可能会想到安全问题):
现在我的问题是,有没有人有好的想法可以/应该如何实施?我想确保没有其他我错过的模式或实现。