React API
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React API相关的知识,希望对你有一定的参考价值。
参考技术A返回元素的 props 是将新的 props 与原始元素的 props 浅层合并后的结果。新的子元素将取代现有的子元素,而来自原始元素的 key 和 ref 将被保留。cloneElement()几乎等同于
MyContext.Provider允许消费订阅context变化
MyContext.Consumer/React.useContext/this.context使用订阅context变更
context使用介绍
是一个对象 ,包括map/forEach/count/only/toArray几个属性
可以简写为:<></>
React.createRef(): 类组件中创建Refs
React.forwardRef():是一个高阶组件,接受一个函数组件,返回一个新组件,新的组件中第二个参数为ref
详细内容
React.lazy() :定义一个动态加载的组件
在React.Suspense 组件中渲染 lazy 组件
fallback 属性接受任何在组件加载过程中想展示的 React 元素
useState / useEffect / useContext / useReducer / useCallback / useMemo / useRef / useImperativeHandle / useLayoutEffect / useDebugValue
React 节点 API 请求设计模式
【中文标题】React 节点 API 请求设计模式【英文标题】:React Node API Request Design Pattern 【发布时间】:2015-10-27 07:23:54 【问题描述】:我需要使用 API 密钥向外部 API 发出 API 请求。我知道如何通过编写 onSubmit 函数在 React 中发出这个 API 请求。但由于我有一个 API 密钥,我想保密,我将编写一个简单的 Node 应用程序来存放环境变量。
除了在 node 中搞乱之外,这是我第一次使用 Node 的生产体验,我想知道我的思维过程是否正确,如果不正确,更好的方法。
这个问题大部分都是伪代码,因为我还没有开始接触 Node 部分。
这个想法是,它会在 React 组件中调用 Node 应用程序,而 Node 应用程序又会调用外部 API。
React -> Node -> External API
所以 React 组件应该是这样的:
handleSubmit: function()
var data = this.refs.testData.getDomNode().value;
$.ajax(
url: '/my-node-endpoint',
dataType: 'json',
type: 'POST',
data: test: data ,
success: function(data)
// Whatever success call I want to make
.bind(this)
)
然后在我的 Node 应用程序中它会像这样:
app.post('/my-node-endpoint', function(req, res)
// Store the values we are posting as JSON
// Start the post request
// On End tell the React component everything is ok
// Prosper
);
一如既往,感谢您提供的任何帮助。
【问题讨论】:
【参考方案1】:你的思维过程在我看来是正确的。
如果您调用的 API 来自不同的域,您将必须在您的节点服务器上构建一个包装器,就像您在此处所做的那样。除非外部 API 支持没有域限制的跨域请求(例如 MapBox web services),否则您将不得不这样做。
对代码的多项改进:
-
据我所知,您可以使用
React.findDOMNode(this.refs.testData).value
代替this.refs.testData.getDomNode().value
。 getDomNode() 在 v0.13 中已弃用。
对于所有 AJAX 调用,您可以使用 Flux 中的 Store 概念。存储保存数据的状态,包括通过 AJAX 请求更新数据。在你的 React UI 代码中,你只需要调用 store 的方法,这会让你的 UI 代码变得干净。我通常自己创建一个 store 类而不使用 Flux。
【讨论】:
这正是我们最终的做法。感谢您的验证。以上是关于React API的主要内容,如果未能解决你的问题,请参考以下文章
React Spring实战之API以及animated 组件的运用
有啥区别(从“react”导入React;)与(从“react”导入React;)[重复]
import * as react from 'react' 与 import react from 'react' 有啥区别