如何在 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 中调用全局函数?的主要内容,如果未能解决你的问题,请参考以下文章

react函数组件中如何实现全局变量

如何从全局范围调用 jquery 函数内的方法?

微信小程序 如何定义全局函数?

在 React 中全局使用 Socket.IO?

如何在微信小程序定义全局变量全局函数如何实现 函数复用 模块化开发等问题详解

如何在 Apollo 客户端的初始化中使用来自 React 的全局数据?