如何在 React 中调用全局函数?
Posted
技术标签:
【中文标题】如何在 React 中调用全局函数?【英文标题】:How can I call a global function in React? 【发布时间】:2019-09-17 16:43:28 【问题描述】:昨天我接受了 React 开发人员职位的面试。面试官问我关于全局函数以及如何用 React 创建和调用全局函数?
我以为他在谈论 Redux 和状态容器……
但他说,不……这不是关于状态容器,而是关于反应服务。
面试后我搜索了react services,但没有找到。
您如何看待这个特性和全局函数?我应该在所有组件之上导入全局函数,或者这里有不同的方法来处理这个?
谢谢
【问题讨论】:
最简单的方法之一是将您的函数附加到window
对象 (e.g. window.myFn = function myFn() ...
),然后使用 window.myFn()
调用它。对于更正式的方法,我认为您将需要 webpack。不过我从来不需要这样的功能,所以我不知道什么是真正的最佳方法。
@ionizer 您的评论可能看起来很小,但它帮助我寻找在父应用程序中创建全局函数的解决方案,而不是将链传递给子应用程序。
【参考方案1】:
你必须在这里描述你所谓的“反应服务”和“全局函数”,然后才能说出如何完成它的答案。
任何类型的“全局”内容,例如您在许多不同地方需要的辅助函数,我会将其放在单独的文件中并在那里导出,然后在任何需要的地方导入/需要。
传统上,在 web 应用程序中,全局函数可能是添加到窗口对象的东西。这是bad 模式,多年来一直是well documented。只是在一个主题上谷歌。
“React 服务”,对我来说,主要是提醒一些可以运行服务器端渲染的 API 来渲染 React 应用程序。就像您提供 ReactJS 应用程序 URL 的 API 端点一样,它会返回原始 html。我会在这个上下文中使用 headless chrome 和 global function
另外,它可以是任何类型的帮助函数,提供some kind 的数据管理、与某物的连接处理或几乎其他任何东西。
我认为正确的答案是:定义“react service”和“global function”是什么意思。
太多的东西可以称为服务或全局函数。
【讨论】:
以上是关于如何在 React 中调用全局函数?的主要内容,如果未能解决你的问题,请参考以下文章