react入门

  由于最近没有什么项目可做,所以学习了react框架,这里只是作为自己的笔记作为以后参考,如果要学习还是去官网去学习比较好一些。

  首先ES6肯定是要有一定的使用基础的,现在大多都是基于es6来开发。

  babel

  由于现在ES6对浏览器的支持还不是那么好,所以babel就应运而生了,它的主要作用就是把ES6的代码转换成我们之前没有ES6时的代码,否则有好一些浏览器是不认识ES6的语法的。

  初期学习的话还是不要依赖于react的脚手架进行学习吧,就在之前html页面中引入js文件就可以了。

  安装nodejs并下载三个文件

  我在这里就假装你有node的一些基础了,现在一个前端应该都对node有一定了了解了,如果你还不了解,抓紧时机学习一下哦,现在前端的好多构建工具什么的都是基于node npm 来搭建了,

  安装上node的时候会自动连带着npm会一起下载下来,如果知道如何下载, 去看下载教程

  下载三个npm包   

  babel-standalone  react react-dom

  直接在你要工作的文件夹目录中打开命令行,使用 npm i -S bebel-standalone react react-dom 进行下载,我们需要的是这三个包里面的三个js文件

  bebel-standalone 由于react使用的是 jsx语法,所以我们需要这个bebel来把这jsx语法转换成浏览器可以识别的代码。 

  还有一个是react,一个是react-dom,其中react是react的核心代码。react的核心思想是虚拟Dom,其实虚拟Dom改变没有那么复杂,简单而言就是一个js的对象来表达一个dom包含的东西。包react-dom的核心功能就是把这些虚拟Dom渲染到文档中变成实际dom,当然了除了渲染这个功能之外还有一些其他的方法,这里就不多说了。

  引入js文件

  三个js文件的位置都在刚才下载下来的node_modules里面,具体位置如下,引入到页面

文件之后 就会有一个 Babel的全局变量

 

2. 基本jsx语法

  所有的前提都是基于引入上面那三个js文件而来的,这里就不多写了

此时打开浏览器就可以看到页面中#app那个div里面会有h1的标签,再看下面一个例子

  可以打开浏览器再来浏览一下,你根据页面中的dom结构,和这个比对一下发现这段HTML代码居然就被插入到页面中了,你可能没有发现你居然在js代码中写了HTML代码,而且你没有用引号引起来,厉害。

  其实这种写法就是jsx语法,就是在js中写html或者说是xml就是jsx语法,因为经过了bebel编译所以是没有问题的不会报错的。

  注意: 这个里面的标签是必须需要闭合的

 3. 注释的写法

我们一般都会用 ()把我们要写的HTML代码包裹起来 换行重新写,这样结构清晰一些, 这里面的HTML代码只能有一个根节点 
HTML代码包裹的地方你想要写js代码 就只能使用 {} 包裹起来写了,写到他们中间了。
只要记住 一旦你想要在html包裹的地方写js代码 就要写到 {} 中间 , 在 {} 中间可以随意的写js代码
1 const element =
标签结构,除了在{}之中,就不能写js代码
)
const element = 标签结构 算是js代码的注释
{

这里的h1标签

document.querySelector('#app' element 的内容还可以是一个函数的返回值
比如 这样 return (
  

    

这个样子的


  

)

4. 插值

  如何把js中的数据插入到 自己写的 HTML代码里面呢, 也是使用 {}的样子, 就直接写js代码就好了

let data = name: '狗蛋' const element =

document.querySelector('#app' );

 那里面还可以写一些函数,可以渲染数组之类的东西, 也可以是一个函数的返回值,看下面的代码

let arr = 'name','age','sex'
代码
const element =
    arr.map((item,index) =>
  • {item}
document.querySelector('#app' );

5. 节点属性

看下面的代码 你写上去,去浏览器中查看一下

const element =
document.querySelector('#app' );

会发现这样的错误

意思是让你把value改为 defaultValue,类似的错误还有一些其他的标签,当你用错的时候,看一下这个报错应该可以改为正确的,如果改不正确可以百度查一下

class -> className

标签一定要闭合
value -> defaultValue
checked -> defaultChecked

 

6. 列表渲染

标签(不要加引号 加了引号就是字符串) 代码性能 diff算法 const arr = 1,2,3 const arr1 = 'a','b','c' const arr2 =
  • 这里的li
  • ,
  • ,
  • const arr4 = {name: '狗蛋1',age: 12 {name: '狗蛋2',age: 13 {name: '狗蛋3',age: 14 const element =
    {arr}
    const element2 = ( let elementStr = arr4.forEach((item,index) => elementStr.push(
  • {item.name} {item.age}
  • ); })();

    可以把上面的代码插入到页面中试一试, arr4的话,是需要自己把结构拆分出来的, {} 会自动把数组一个一个的渲染出来

    7. 事件处理

    只是事件是需要驼峰来命名了,它的好多东西和vue非常非常像

    console.log('fn事件' const element =
    函数 alert(1 console.log('我这里写了一个函数' }} /> alert('es6的语法')} />
    );

     

      如果你看了我的文章有了一些收获我会非常高兴的,由于能力有限,文章有的部分解释的不到位,希望在以后的日子里能慢慢提高自己能力,如果不足之处,还望指正。

    相关文章

    导入moment 使用方式 年月日,时分秒 星期几 相对时间 7天后 2小时后 明天 将毫秒转换成年月日
    @ 一、前言 为什么介绍redux-actions呢? 第一次见到主要是接手公司原有的项目,发现有之前的大佬在处理...
    十大React Hook库 原文地址:https://dev.to/bornfightcompany/top-10-react-hook-libraries-4065 原文...
    React生命周期 React的生命周期从广义上分为挂载、渲染、卸载三个阶段,在React的整个生命周期中提供很...
    React虚拟DOM的理解 Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点可以将其称为VNode,用...
    React中JSX的理解 JSX是快速生成react元素的一种语法,实际是React.createElement(component, props, ....