react从入门到熟悉(回顾react)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了react从入门到熟悉(回顾react),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3387字,纯文字阅读大概需要5分钟。
内容图文
首先npm和node环境就不说了,不懂得参考我写的vue2.0安装,里面有npm和node安装的介绍
react开发
参考官网创建react项目搭建开发环境,安装的是最新版
npx create-react-app my-app(这个是项目名称)
安装完成后cd my-app 直接npm run start 看到运行之后的效果
先按官网走一遍基础吧
JSX简介
JSX是一个Javascript的语法扩展,
了解下jsx编译
Babel 会把 JSX 转译成一个名为 React.createElement() 函数调用。 const element = ( <div className="box"> <div className="title">hello</div> <button>click</button> </div> );//()如果存在标签结构,并且标签结构要换行,就需要这个 const element = React.createElement( "div", {className:"box"}, React.createElement( "div", {className:"title"}, "hello" ), React.createElement( "button", null, "click" ) ); 每个 DOM 元素的结构都可以用 JavaScript 的对象来表示 { tag:‘div‘, attrs:{className:‘box‘}, children:[ { tag:‘div‘, attrs:{className:‘title‘}, children:[‘hello‘] }, { tag:‘button‘, attrs:null, children:[‘click‘] } ] }
警告:
因为 JSX 语法上更接近 JavaScript 而不是 HTML,所以 React DOM 使用 camelCase
(小驼峰命名)来定义属性的名称,而不使用 HTML 属性名称的命名约定。
例如,JSX 里的 class
变成了 className,而 tabindex
则变为 tabIndex
ReactDom.render 渲染dom树
最简单的组件模板
注意: 组件名称必须以大写字母开头。
React 会将以小写字母开头的组件视为原生 DOM 标签。例如,<div />
代表 HTML 的 div 标签,而 <Welcome />
则代表一个组件,并且需在作用域内使用 Welcome
。
// index.js import React from ‘react‘; import ReactDOM from ‘react-dom‘; import ‘./index.css‘; import App from ‘./App‘; import * as serviceWorker from ‘./serviceWorker‘; ReactDOM.render( <App />, document.getElementById(‘root‘) ); //App import React from ‘react‘; class App extends React.Component{ constructor(props){ super(props); this.state={ aa:‘hello world‘ } } render(){ return( <div> <h1>hello world</h1> <div>{this.state.aa}</div> </div> ) } } export default App;
vscode两个快捷键
imr import React from ‘react‘
ccc 快速生成基础模板
state
/*react通过页面元素改变使用state进行处理*/
import React from ‘react‘ class StateCompomemt extends React.Component { constructor(props) { super(props); this.state = { count:10 } /*绑值方法三*/this.increment=this.increment.bind(this); } render() { return ( <div> <h3>组件的state</h3> <p>{this.state.count}</p> {/*绑值方法一 bind绑定*/} {/* <button onClick={this.increment.bind(this)}>增加</button> */} {/*绑值方法二 直接箭头函数*/} {/* <button onClick={()=>this.increment()}>增加</button> */} {/*箭头函数另一种*/} <button onClick={this.increment}>增加</button> {/*绑值方法三*/} <button onClick={this.increment}>增加</button> </div> ); } increment(){ this.setState({ count:this.state.count+=1 }) } /*箭头函数另一种写法*/ increment=()=>{ this.setState({ count:this.state.count+=1 }) } } export default StateCompomemt;
以上介绍了3种事件绑定的方法,推荐使用箭头函数的方式
生命周期就不说了,我有一篇随便写过了
setState是同步还是异步的??
render() { return ( <div> <p>setState是同步还是异步</p> <p>{this.state.count}</p> <button onClick={this.increment}>增加</button> </div> ); } increment=()=>{ this.setState({ count:this.state.count+1 }) console.log("dd",this.state.count) }
//改同步
<button onClick={this.increment.bind(this)}>增加</button>
async increment(){
await this.setStateAsync({count:this.state.count+1})
}
setStateAsync(state){
return new Promise((resolve)=>{
this.setState(state,resolve);
})
}
事实证明是异步的
官方给出的解释是,State 的更新可能是异步的,
出于性能考虑,React 可能会把多个 setState()
调用合并成一个调用。
因为 this.props
和 this.state
可能会异步更新,所以你不要依赖他们的值来更新下一个状态。
事件处理条件渲染列表,这个参考我的另一篇react有介绍
先写到这里,后期持续更新。。。
原文:https://www.cnblogs.com/zhihou/p/12991829.html
内容总结
以上是互联网集市为您收集整理的react从入门到熟悉(回顾react)全部内容,希望文章能够帮你解决react从入门到熟悉(回顾react)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。