渲染组件wrappedComponent时,给组件wrappedComponent通过props传值时,为什么要写成 {...this.state} 的形式?

在高阶组件的学习过程中,渲染组件时,通过props传值,为什么要写成 {…this.state} 这样的形式?

    render(){
      return <WrappedComponent {...this.state}></WrappedComponent>
    }
  }

1.首先组件有两个JS对象,一个state,一个props。

**对象是多个属性的集合,属性有名和值。**这俩都是用来保存信息的,控制组件的渲染输出。
state是在组件内部的,是可变的。
props是用来接受传递给该组件的参数的,是不可以改变的。

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <Welcome name="Sara" />;
root.render(element);

2.es6解构:对象的解构赋值

多属性传值:
(1)定义一个this.props对象,在对象中声明多个键值对,用于表示组件的属性
(2)在组件中使用**{…this.props}**的方式传递属性。
“…”表示JSX的延展操作符,这种方式可以很方便的为组件指定多个属性,并且为属性的值指定数据类型。

1)定义一个this.props对象,在对象中声明多个**键值对**,用于表示组件的属性
(2)在组件中使用**{...this.props}**的方式传递属性。
“...”表示JSX的延展操作符,这种方式可以很方便的为组件指定多个属性,并且为属性的值指定数据类型。
class MyApp extends React.Component {
	render() {
		return(
			<h1>{this.props.name} : {this.props.age} : {this.props.sex}</h1>
		);
	}
}
let p1 = {
	name: '张三', 
	age: 18,
	sex: '男'
};
ReactDOM.render(
    //<MyApp name='张三' age='18' sex='男' />
	<MyApp {...p1}/>,
	document.getElementById('root')

解构对象属性赋值给不同的变量: 对象的属性名:新定义的属性名
冒号左边的是对象的属性名,右边的是我们新定义的变量名,

let node = {
    name: 'mike',
    age: 25
};
let {name: localName, age, country: localCountry = 'China'} = node;
console.log(localName); //mike
console.log(age); // 25
console.log(localCountry); //China
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值