我是编程和reactjs的新手。我试图寻找这个,但没有找到太多关于这个的好的概念。
我想知道两种方法之间的区别是:声明具有3个属性的对象或声明3个变量。
哪个是更好的性能和资源明智的选择?他们会占用相同的内存量吗?
@observable response = {
foo: null,
bar: null,
baz: null
}
与
@observable foo = null;
@observable bar = null;
@observable baz = null;
const [response, setResponse] = React.useState({foo: null, bar: null, baz: null});
与
const [foo, setFoo] = React.useState(null);
const [bar, setBar] = React.useState(null);
const [baz, setBaz] = React.useState(null);
答案 0 :(得分:0)
我认为我们在性能和资源上也没有什么不同。
我唯一关心的是您使用这些变量的方式。
例如,仅一个变量发生变化的情况。如果使用对象,则应在setResponse({
...response
foo: newFooValue
})
setFoo(newFooValue)
如果使用三个不同的变量,则只需执行以下操作即可,不必担心其他变量
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class NumWords implements Rule
{
private $attribute;
private $expected;
public function __construct(int $expected)
{
$this->expected = $expected;
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$this->attribute = $attribute;
$trimmed = trim($value);
$numWords = count(explode(' ', $trimmed));
return $numWords === $this->expected;
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The '.$this->attribute.' field must have exactly '.$this->expected.' words';
}
}
仅此而已!