Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React中使用对象构造函数?_Javascript_Reactjs_Oop - Fatal编程技术网

Javascript 在React中使用对象构造函数?

Javascript 在React中使用对象构造函数?,javascript,reactjs,oop,Javascript,Reactjs,Oop,据我所知,我们主要是在状态下定义对象,就像对象文字一样。我还没有看到对象构造函数的方式,对于更复杂的对象,使用构造函数创建person既简洁又简单。我的问题是, 1-使用带有new关键字的对象是否是不良做法?为什么 2-什么是正确的方法?为什么 3-对于包含太多嵌套变量的对象,我们如何定期声明 我还把代码 class Obj { name = ''; surname = ''; age = 0; constructor(name,surname,age) {

据我所知,我们主要是在
状态下定义对象,就像对象文字一样。我还没有看到对象构造函数的方式,对于更复杂的对象,使用构造函数创建person既简洁又简单。我的问题是,

1-使用带有
new
关键字的对象是否是不良做法?为什么

2-什么是正确的方法?为什么

3-对于包含太多嵌套变量的对象,我们如何定期声明

我还把代码

class Obj {
    name = '';
    surname = '';
    age = 0;
    constructor(name,surname,age) {
        this.name = name;
        this.surname = surname;
        this.age = age;
    }
    getName() {
        return this.name;
    }
}
export default Obj;
从“/Object”导入人员;
函数App(){
const[objs,setObjs]=React.useState({
trialObj:新人('trialName','trialSurname',25)
})
返回(
{objs.trialObj.getName()}
);
}
导出默认应用程序;

注意:重新渲染需要对象的新实例,这是react的主要概念

const UserMeta = () => {
 const [user, setUser] = useState(new User('name', 'age' ... 100 fields));

 return (
    <button onClick={() => setUser(new User('customName' ... 101 values via User.getSomething()))}>
      Update Name
    </button>
 )
}
若你们想使用模型,请阅读文章。使用TS可以防止“遗忘属性”等

F.E

constusermeta:React.FC=()=>{
const[user,setUser]=useState({name:'name',age:'age'…100个字段));
返回(
setUser({name:'customName',…user})}>
更新名称
)
}
1)不,只要类方法不改变类属性。只是看不到任何好处
const UserMeta = () => {
 const [user, setUser] = useState(new User('name', 'age' ... 100 fields));

 return (
    <button onClick={() => setUser(new User('customName' ... 101 values via User.getSomething()))}>
      Update Name
    </button>
 )
}
const UserMeta = () => {
 const [user, setUser] = useState(new User('name', 'age' ... 100 fields));

 return (
    <button onClick={() => setUser({ name: 'customName', ...user })}>
      Update Name
    </button>
 )
}
const UserMeta = () => {
 const [user, setUser] = useState({ name: 'name', age: 'age' ... 100 fields));

 return (
    <button onClick={() => setUser({ name: 'Custom, ...user })}>
      Update Name
    </button>
 )
}
const UserMeta: React.FC = () => {
 const [user, setUser] = useState<UserModel>({ name: 'name', age: 'age' ... 100 fields));

 return (
    <button onClick={() => setUser({ name: 'customName', ...user })}>
      Update Name
    </button>
 )
}