React

用于构建用户界面的 JavaScript 库 —— 其核心功能中不涉及HTML和CSS。

其特点有三个:

  1. 声明式/数据响应式
  2. 组件化编程
  3. 一次学习,到处编写 —— React可以创建网站、H5、WebApp、原生App

项目引入方式:

  1. 脚本引入         
  2. 脚手架创建     在服务器端编译/渲染

Babel

Babel:是开源社区开发的一款JS编译器,可以把浏览器不认识的JS变种(ES2022/TS/JSX等),转换为浏览器可以执行的标准JS代码。

使用得步骤

1. 

2.type="text/babel">.......

---------------------------------------------------------------------------------------------------------------------------------

获取原生父容器

var parent=document.queryselect('#app')

创建虚拟容器

var vparent=ReactDom.createRoot(parent);

//追加渲染子元素

vparent.render(btn);

 

    

JSX

JSX:JavaScript XML,使用XML语法创建JS对象的技术。这种语法本身是TS的一部分,与React没有必然的联系。

  使用JSX需要注意:

  1.语法类似于XML(严格来说不是HTML)

  2.有且只能有一个根元素,根元素下面可以有多个子/孙元素;如果根元素有多个,那就在外面再套一个父元素:<>

  3.标签/属性名严格区分大小写

  4.标签必须闭合  

  5.因为浏览器不支持TS语法,也就不支持JSX语法;——必须使用一款TS编译器,把JSX语法转换为标准JS语句

  6.注意:JSX的本质是运行于严格模式下的React.createElement( ),是JS不是HTML!!!React项目可以不用JSX,但是使用了JSX,创建虚拟DOM元素语法会变得简单

  7.JSX语法中可以任意添加换行

  8.JSX中的注释:  {/* 注释内容 */}

  9.JSX中元素可以使用的属性与HTML标签的属性大体类似,但是有些是不同的,例如:

         HTML: class                           JSX:className

         HTML: onclick / onkeyup    JSX:onClick / onKeyUp

  10.JSX中可以执行数据绑定,不论是哪种绑定(内容绑定/属性绑定/样式绑定/事件绑定...)语法都是一样的:{ 表达式 }

         表达式}  style={表达式}  onClick={表达式}>{表达式}

         注意:React中“内容绑定”禁止绑定Object!!!“样式绑定”必须绑定一个样式Object!!!

React中自定义组件

 React中提供了两种创建自定义组件的语法:

 语法1: 函数式组件   ----获取参数为props

function ZhRating( props ){

    return

☆☆☆☆☆

}

let vchild =

 

类式组件(class component)

class Reating extends React.Component {

render(){

//this.props表示父类传的参

}

}

React中数据绑定都是通过{}  无论是样式还是属性 数字 ----属性可以不声明直接使用

通过props读取自定义组件的值

脚手架创建:    React项目只能为小写字母

下载:npm i -g create-react-app

运行脚手架工具,创建空白项目

create-react-app 项目名

npx create-react-app  项目名 -----如果没有就自动下载


node.js小工具 npx

JSX事件处理函数中的this  指向undefined   --------------面试

  1. 可能性:this指向事件源对象       否---虚拟dom元素不能作为事件源
  2. this指向class或实例               否-----类的实例方法指向另一个对象
  3. this指向window                     否------babel编译后的结果处于严格模式
  4. this指向undefined                  是

解决方案

一、箭头函数  -------箭头函数中的this指向它所在的类实例 //-------------传统函数中的this指向的为调用者

方案1:使用箭头函数(不能传参)  

f1=()=>{log(this)}

你可能感兴趣的:(react.js,javascript,前端)