Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 在渲染中使用常量存储状态值的意义_Javascript_Reactjs - Fatal编程技术网

Javascript 在渲染中使用常量存储状态值的意义

Javascript 在渲染中使用常量存储状态值的意义,javascript,reactjs,Javascript,Reactjs,我有一个关于我在react文档中多次看到的内容的问题 他们在呈现方法中使用常量,该方法存储来自状态的值,然后使用常量进行进一步的逻辑 Eg-> render(){ // showLogin is boolean const showLogin = this.state.showLogin showLogin ? return(something) : return(something else) } 所以我的问题是为什么不直接使用this.state.showLogin

我有一个关于我在react文档中多次看到的内容的问题

他们在呈现方法中使用常量,该方法存储来自状态的值,然后使用常量进行进一步的逻辑

Eg->

render(){
    // showLogin is boolean
    const showLogin = this.state.showLogin
    showLogin ? return(something) : return(something else)
}
所以我的问题是为什么不直接使用this.state.showLogin以及为什么创建一个单独的const

使用这种方式有什么好处吗?或者说,这样做是没有理由的


例如文档->

在本例中,它纯粹是为了更干净、更可读的代码。 如果他们会使用:

this.state.showLogin ? return(something) : return(something else)
这台机器不会有什么不同,但是想象一下一个真正的代码库,它包含许多代码行和许多状态值(showLogin、toggleBar、hideNotification等)。 代码很快就会变得一团糟。因此,出于对下一位开发人员(以及您未来的自我)的关心,最好是尽可能干净地编写代码


关于CONST->如果将来不会重新分配变量,您应该始终使用CONST而不是let。

在本例中,这纯粹是为了更干净、更可读的代码。 如果他们会使用:

this.state.showLogin ? return(something) : return(something else)
这台机器不会有什么不同,但是想象一下一个真正的代码库,它包含许多代码行和许多状态值(showLogin、toggleBar、hideNotification等)。 代码很快就会变得一团糟。因此,出于对下一位开发人员(以及您未来的自我)的关心,最好是尽可能干净地编写代码

关于CONST->如果将来不会重新分配变量,您应该始终使用CONST而不是let。

您的代码

render(){
    // showLogin is boolean
    const showLogin = this.state.showLogin
    showLogin ? return(something) : return(something else)
}
做的事情和

render(){
    // this.state.showLogin is boolean
    this.state.showLogin ? return(something) : return(something else)
}
区别不在于代码的逻辑,而在于可读性。

您的代码

render(){
    // showLogin is boolean
    const showLogin = this.state.showLogin
    showLogin ? return(something) : return(something else)
}
做的事情和

render(){
    // this.state.showLogin is boolean
    this.state.showLogin ? return(something) : return(something else)
}

区别不在于代码的逻辑,而在于可读性。

这是因为可读性。在某些情况下,您还会发现对象正在分解。 像
const{showLogin,otherProperty}=this.state

它只是提高了代码的可读性。

这是因为可读性。在某些情况下,您还会发现对象正在分解。 像
const{showLogin,otherProperty}=this.state

它只是提高了代码的可读性。

可能是粗心的键入。但是你的问题有一些问题。与传统的if-else相比,三值运算符有一个优势,它可以默认返回值

const color = true ? 'orange' : 'green';
说到你的问题

render(){
 const { showLogin } = this.state;

 return (
  <div>
   {showLogin ? <Component1 /> : <Component2 />}
  </div>
 )
}

可能是打字粗心。但是你的问题有一些问题。与传统的if-else相比,三值运算符有一个优势,它可以默认返回值

const color = true ? 'orange' : 'green';
说到你的问题

render(){
 const { showLogin } = this.state;

 return (
  <div>
   {showLogin ? <Component1 /> : <Component2 />}
  </div>
 )
}

它的可读性要高得多,尤其是当状态对象可能包含嵌套对象时,这将使读取和理解代码变得更加困难。它的可读性要高得多,尤其是当状态对象可能包含嵌套对象时,这将使读取和理解代码变得更加困难