component composition官方 react.js 上的教程描述了如何使用组合来避免继承,并且在大多数情况下我看到了这里的优势。
但是网站也提到了we haven’t found any use cases where we would recommend creating component inheritance hierarchies
src:https : //reactjs.org/docs/composition-vs-inheritance.html
但是我们有一个关于 HOC(高阶组件)模式
src的教程:https : //reactjs.org/docs/higher-order-components.html
它建议编写用于生成复合组件的函数,以避免重复逻辑。
此模式也用于 Relay 中,用于与 GraphQL 配合使用的组件。
对于来自 C#/Java/PHP 背景的人来说,他们的 HOC 用例看起来像是何时使用继承的明显例子。这是我之前在 React 中自己做的,发现它非常直观,更重要的是易于调试。
我也在努力理解 HOC 中使用的生成器函数相对于常规复合组件的优势,后者通过 props 获取内部组件。
所以我的问题是:React 中的 HOC 是否存在无法通过组合或继承轻松解决的用例?
示例将不胜感激。
更新:发现这篇文章Inheritance Inversion建议让您的包装类从您的内部类继承并调用它的 render() 方法。
我可能有偏见,所以我不会立即放弃这个想法,因为它可能有实际用途,但我必须首先对其进行更多研究。
如果您知道这何时可以击败常规组合或继承,请发表评论,或者如果您认为自己有一个很好的案例,请留下一个答案。
我的问题是我需要用户确认是否要继续关闭或刷新页面。如果他按下No,它不会关闭也不会刷新页面。
请看一下我到目前为止的代码:
useEffect(() => {
window.addEventListener("beforeunload", alertUser);
return () => {
window.removeEventListener("beforeunload", alertUser);
};
}, []);
Run Code Online (Sandbox Code Playgroud) 我使用时在代码中出现此错误 $this->
致命错误:无法访问第21行/home/u506382626/public_html/s1/arrays.php中的空属性
我虽然这是你如何访问当前的对象变量,不是吗?
这是我的代码.我正在尝试为每个索引创建一个具有更大值的数组但是使用函数at而不是索引.是否有可能在php中重载operator [],你是如何做到的?
希望有人知道这是什么问题.
<?php
class zArray {
public $change = 1.165;
public $lenght;
private $vars = array();
public $name;
public $percent = false;
public function __construct($values) {
for ($i=0; $i < 5; $i++) {
$vars[$i] = $values[$i];
}
$lenght = $values[5];
$name = $values[6];
$percent = $values[7];
}
public function at($i) {
$newchange = $this->$change;
for ( $i-- ; $i; $i-- )
$newChange *= $this->$change;
$newVars = $this->$vars;
for ($i = 0; $i < 4; $i++) …Run Code Online (Sandbox Code Playgroud)