练习:用标签做一个圆形,做呼吸灯效果,动画是:改变透明度1-0 循环
- <style>
- .hxd {
- width: 350px;
- height: 350px;
- background-color: pink;
- border-radius: 50%;
- margin: 50px auto;
- }
- </style>
- </head>
- <body>
- <div id="app"></div>
- <script type="text/babel">
- class App extends React.Component{
- constructor(props){
- super(props)
- this.fun=this.fun.bind(this)
- this.state={num:1}
- }
- fun(){
- if(this.state.num<0){
- this.setState({num:1})
- }
- else{
- this.setState({num:this.state.num-0.1})
- }
- }
- componentWillUnmount(){
- clearInterval(this.th)
- }
- componentWillMount(){
- this.th=setInterval(()=>{
- this.fun()
- },100)
- }
- render(){
- return (
- <div className="hxd" style={{opacity:this.state.num}}></div>
- )
- }
- }
- ReactDOM.render(
- (<div>
- <App />
- </div>),
- document.getElementById("app")
- )
- </script>
- </body>
何为受控组件(controlled component)
在 HTML 中,类似 <input>, <textarea> 和 <select> 这样的表单元素会维护自身的状态,并基于用户的输入来更新。当用户提交表单时,前面提到的元素的值将随表单一起被发送。但在 React 中会有些不同,包含表单元素的组件将会在 state 中追踪输入的值,并且每次调用回调函数时,如 onChange 会更新 state,重新渲染组件。一个输入表单元素,它的值通过 React 的这种方式来控制,这样的元素就被称为"受控元素"。
何为高阶组件(higher order component)
高阶组件是一个以组件为参数并返回一个新组件的函数。HOC 运行你重用代码、逻辑和引导抽象。最常见的可能是 Redux 的 connect 函数。除了简单分享工具库和简单的组合,HOC 最好的方式是共享 React 组件之间的行为。如果你发现你在不同的地方写了大量代码来做同一件事时,就应该考虑将代码重构为可重用的 HOC。