老师我这里有一个困惑。
老师我这里有一个困惑,我们花了这么多精力来改写子文件。这样有么子用呢?感觉吃力不讨好。想也不能把子文件用在其他地方。子文件实现了点击效果但是是依据父文件的函数来的。所以这个子文件感觉多写了这么多代码,还不能和父文件分开使用两个文件连在一块。 模块就比较好,我制定了一个模块后到其他地方直接引用就可以了。多写一个子文件的意义在哪呢?
第二个问题:我每次写完都是写在一个文件中,然后再进行优化的。达不到跳跃的思维。就是按照视频中老师这样的讲解来改写的。所以能跟的上。请问在实际开发中是和老师这样讲解的步骤一步一步(先整体实现然后分解拆分)优化的来,还是跳跃的一次性搞定?
下面的代码我自己实现了您不用看。特别是在子文件中实现花了比较长的时间,所以引发了这个思考。到底哪些地方需要进一步用子文件?感觉自己都看不准哪些地方该用子文件哪些地方不该用。再说用了和不用有么子区别是更方便检查还是更方便引用? (要是更方便引用,感觉不太可能吧)
TodoList.js文件(父文件)
import React, {Component, Fragment } from "react";
import { Todoitem3 } from "./Todoitem3";
class TodoList3 extends Component{
constructor(props){
super(props);
this.state={
inputValue:'o',
list:['a','b'],
}
this.handleChange=this.handleChange.bind(this)
this.handleKeyUp=this.handleKeyUp.bind(this)
this.handleClick=this.handleClick.bind(this)
}
handleChange(e){
console.log(e.target.value)
const inputValue=e.target.value
this.setState({inputValue})
};
handleKeyUp(e){
console.log(e.keyCode)
if(e.keyCode===13&&this.state.inputValue!==''){
const list=[...this.state.list,this.state.inputValue]
this.setState({list,inputValue:''})
}
};
handleClick(index){
const list=[...this.state.list]
list.splice(index,1)
this.setState({list})
}
handleItem(){
return this.state.list.map((value,index)=>{
return (
// <li key={index}
// onClick={this.handleClick.bind(this,index)}
// >
// {value}
// </li>
<Todoitem3
key={index}
index={index}
content={value}
handle={this.handleClick}
/>
)
})
}
render(){
return(
<Fragment>
<input
value= {this.state.inputValue}
onChange={this.handleChange}
onKeyUp={this.handleKeyUp}
/>
<ul>
{this.handleItem()}
</ul>
</Fragment>
)
}
}
export {TodoList3};
部分功能子文件
import React, {Component } from "react";
class Todoitem3 extends Component{
constructor(){
super();
this.handleClick=this.handleClick.bind(this)
}
handleClick(){
const {handle,index}=this.props
handle(index)
}
render(){
return (
<li
onClick={this.handleClick}
>{this.props.content} </li>
)
}
}
export{Todoitem3};
在这里输入代码,可通过选择【代码语言】突出显示
正在回答 回答被采纳积分+1
同学你好,问题解答如下 :
1.这里多拆分一个子组件确实看起来比较麻烦,但老师的目的不是讲拆分这个组件的意义是什么,而是通过它给大家讲解如何拆分组件,以及如何传值。因为例子比较小,所以尽量拆的细一点,去传授大家这种拆分的思想。在实际开发中,就不会拆分的这么细了。
2. 因为你才刚入门,没有实际的工作经验,所以能够写完再优化已经很不错了。老师也是因为要给大家讲解这种拆分的思想,所以先整体后拆分。在实际开发中,肯定会先思考如何拆分,然后再去做。当然了,即使有工作经验的,也不能做到一步到位。只能是在写的时候,尽量做的更好。但是做的过程中,我们还是会不断发现问题不断优化的。所以这是要靠工作经验的积累,才能慢慢做到更好的。不用担心哦,等以后工作几年,就能熟练了。
3.拆分组件一般是为了组件的复用(多次调用组件)和维护(代码多了放在一起不便于阅读和管理)。如果组件没有复用的可能,而且不拆分也便于维护,那么不拆分是可以的。在实际开发中,根据自己的编码习惯去做就行,拆分组件并没有硬性的要求。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星