react基础用法

摘要:
只有当它被插入到文档中时,它才会成为真正的DOM。根据React的设计,所有DOM更改首先发生在虚拟DOM上,然后实际更改反映在真实DOM上。这种算法被称为DOMdiff,它可以大大提高网页的性能。用户在表单中填写的内容属于用户和组件之间的交互,因此无法使用this.props.value读取文本输入框的值。相反,可以定义onChange事件的回调函数,并通过event.target.value读取用户输入的值

React的模板是采用jsx语法

  Html语法该怎么写就怎么写,遇到js代码放到大括号({})里面

  注意:

    1、script标签的type必须是text/babel类型

    2、使用的react.js、react-dom.js、Browser.js这三个插件的位置不能乱放

      react.js是react的核心

      react-dom.js是提供与DOM相关的功能

      Browser.js是将jsx语法转换成javascript语法,这一步很消耗时间,实际上线的时候,应该将它放到服务器完成

ReactDOM.render(参数1,参数2)

  参数1:组件

  参数2:dom元素

  模板中只能有一个顶层标签

  ReactDOM.render是react的最基本方法,用于将模板转为HTML语言,并插入指定的DOM节点

     react基础用法第1张

 React的组件

  使用react.createClass({}) 生成组件

  组件标签上可以任意添加属性

  在组件类中使用this.props获取组件标签上的属性

  注意事项:

    1、组件类的名称首字母必须大写,否则报错

    2、组件类中的模板只能有一个顶层标签,否则报错

    3、添加属性的时候要注意

      class属性需要写成className

      for属性需要写成htmlFor

    react基础用法第2张

 this.props.children的问题

  this.props.children是组件标签子节点构成的集合

  当没有子节点这个值是undefined,有一个子节点是object,当有多个子节点是array

  用数组方法遍历,对前两种情况就不起作用

  react专门提供了一个react.children.map的方法用于遍历this.props.children

    react基础用法第3张

 propTypes

  组件类的propTypes用于验证标签属性值的类型的

  react基础用法第4张

 getDefaultProps

  这个方法是用来设置组件属性的默认值

  react基础用法第5张

 ref

  组件并不是真实的 DOM 节点,而是存在于内存之中的一种数据结构,叫做虚拟 DOM (virtual DOM)。只有当它插入文档以后,才会变成真实的 DOM 。根据 React 的设计,所有的 DOM 变动,都先在虚拟 DOM 上发生,然后再将实际发生变动的部分,反映在真实 DOM上,这种算法叫做 DOM diff ,它可以极大提高网页的性能表现。

 但是,有时需要从组件获取真实 DOM 的节点,这时就要用到 ref 属性

 react基础用法第6张

 事件

  在react的节点上添加事件,事件名使用驼峰法,因为这个东西实在js语言中写的

  react基础用法第7张

   后面绑定的事件函数必须写在花括号里面({})

  定义事件函数直接写在组件类身上

getInitialState,this.state

  状态就相等于说的data

  这个一个状态机

  this.state就是react的状态机

  组件免不了要与用户互动,React的一大创新,就是将组件看成一个状态机,一开始有一个初始状态,天后用户互动,导致状态变化,从而触发重新渲染

  this.getInitialState这个方法,给组件设置初始化的state(状态)的

  如果需要修改state中的数据,必须使用this.setState({}),用于修改state的数据

  react基础用法第8张

 this.props和this.state的区别:

  this.props 和 this.state 都用于描述组件的特性,

     this.props 表示那些一旦定义,就不再改变的特性,

     this.state 是会随着用户互动而产生变化的特性。

表单

  表单中的值不能使用this.props来读取

  为什么不能使用this.props进行读取?

    用户在表单填入的内容,属于用户跟组件的互动,所以不能用this.props读取

  文本输入框的值,不能使用this.props.value读取

  而是定义一个onChange事件的回调函数,通过event.target.value读取用户输入的值

  react基础用法第9张

  

免责声明:文章转载自《react基础用法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux内核crash/Oops异常定位分析方法【转】[转] C# TextBox、DataGrideView中的数据绑定下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

redux入门学习

目录 Redux学习 1.用react脚手架创建一个新的项目 2.visual studio code安装simple react snippet 插件 3.然后再src目录下新建一个文件,TodoList.jsx 4.安装antd组件制作UI界面 5.使用antd制作UI界面 6.安装redux 7.创建redux中的仓库-store和reducer...

webpack入门(转载)

     阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过;如果你和十天前的我一样,对很多选项存在着疑惑,那花一段时间慢慢阅读本文,你的疑惑一定一个一个都会消失;如果你以前没怎么接触过Webpack,如果你对webpack感兴趣,本文中有一个贯穿始终的例子,如果你能把这个例子...

umijs 开发优化和生产优化

.umirc.ts import { defineConfig } from 'umi'; import dev from './config/dev'; import prod from './config/prod'; console.log(process.env.NODE_ENV); const envConfig = 'developmen...

js中的DOM节点操作---增删改查

查找节点 getElementById(),getElementsByClassName(),getElementsByTagName() querySelector(),querySelectorAll() 创建节点 createElement():创建一个dom节点 示例代码 document.createElement('div'); 插入节点 a...

jquery源码 DOM加载

jQuery版本:2.0.3 DOM加载有关的扩展 isReady:DOM是否加载完(内部使用)  readyWait:等待多少文件的计数器(内部使用) holdReady():推迟DOM触发 ready():准备DOM触发。 jQuery.ready.promise=function(){};  监听DOM的异步操作(内部使用) 一、$(functi...

React 产线去掉 console.log 打印

打开 config / webpack.config.js , 搜索 optimization module.exports = { optimization:{ minimizer: [ new TerserPlugin({ sourceMap:false, terserOptions:{ compress:{...