React框架第九课 React基础第三课

简介: React框架第九课 React基础第三课

 

import React, { Component } from 'react'
export default class App extends Component {
    a = 200
    myRef = React.createRef()
    render() {
        return (
            <div>
                <input ref={this.myRef}/>
                {/* <input ref="mytest2"/> */}
                <button onClick={() => {
                    // 标签自身
                    // console.log("CLICK", this.refs.mytest.value)
                    console.log("click",this.myRef)
                    console.log("click",this.myRef.current)
                    console.log("click",this.myRef.current.value)
                }}>增加按钮1</button>
            </div>
        )
    }
}
// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有
//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React
// import App from './App';
import React from'react'
// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中
//引入的,而不是从 react 引入。
import ReactDOM from 'react-dom'
// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上
// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语
//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。
// import App from'./01-base/01-class组件'
// import App from'./01-base/02-函数式组件'
// import App from'./01-base/03组件套娃'
// import App from'./01-base/05-事件绑定'
import App from'./01-base/06-事件绑定2'
// import App from './01-base/07Ref'
// import App from './01-base/08state'
// import App from './01-base/09数组循环'
ReactDOM.render(
    // <div>
    // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b>
    // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2>
    // </div>
    // React.createElement("div",{
    //     id:"aaaa",
    //     class:"bbbbb"
    // },"我是第二种方案")
    // <div>11111</div>
    <App></App>
    ,
    document.getElementById("root")
    )
//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面
    /**
     * jsx=js+xml
     */
import React, { Component } from 'react'
/**
 * this.state 是纯js对象,在vue中,data属性是利用 Object.defineProperty 处理过的,更改 data的
数据的时候会触发数据的 getter 和 setter ,但是React中没有做这样的处理,如果直接更改的话,
react是无法得知的,所以,需要使用特殊的更改状态的方法 setState 。
 */
export default class App extends Component {
    // state = {
    //     mytext: "收藏",
    //     myshow: true
    // }
    // 第二种方案
    constructor() {
            super()
            this.state = {
            name: 'React',
            myshow: true,
            myname:"AAAA"
          }
        }
    render() {
        // let text="取消收藏"
        return (
            <div>
                <h1>欢迎来到Reac Stater---{this.state.myname}</h1>
                <button onClick={() => {
                    //   this.state.mytext="取消"
                    this.setState({
                        // mytext:"取消收藏"
                        myshow: !this.state.myshow,
                        myname:"BBBBB"
                    })
                    if (this.state.myshow===true) {
                        console.log("收藏")
                    } else {
                        console.log("取消收藏")
                    }
                    // 间接修改
                }}>{this.state.myshow ? '收藏' : "取消收藏"}</button>
            </div>
        )
    }
}
import React, { Component } from 'react'
export default class APP extends Component {
    state={
        list:["A11111","B11111","C11111","D11111","E11111","F11111","G11111","H11111","I11111","J11111"]
    }
  render() {
    return (
      <div>
      <ul>
        {
            this.state.list.map(item=>
                <li>{item}</li> 
                )
        }
      </ul>
      </div>
    )
  }
}
/**
 * 原生JSmap集合
 */
var list= ["A11111","B11111","C11111","D11111","E11111","F11111","G11111","H11111","I11111","J11111"]
// eslint-disable-next-line no-template-curly-in-string
var newList=list.map(item=>'<li>${item}<li/>')
console.log(newList.join(""))
// 从 react 的包当中引入了 React。只要你要写 React.js 组件就必须引入React, 因为react里有
//一种语法叫JSX,稍后会讲到JSX,要写JSX,就必须引入React
// import App from './App';
import React from'react'
// ReactDOM 可以帮助我们把 React 组件渲染到页面上去,没有其它的作用了。它是从 react-dom 中
//引入的,而不是从 react 引入。
import ReactDOM from 'react-dom'
// ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上
// 这里就比较奇怪了,它并不是一个字符串,看起来像是纯 HTML 代码写在 JavaScript 代码里面。语
//法错误吗?这并不是合法的 JavaScript 代码, “在 JavaScript 写的标签的”语法叫 JSXJavaScript XML。
// import App from'./01-base/01-class组件'
// import App from'./01-base/02-函数式组件'
// import App from'./01-base/03组件套娃'
// import App from'./01-base/05-事件绑定'
import App from'./01-base/06-事件绑定2'
// import App from './01-base/07Ref'
// import App from './01-base/08state'
// import App from './01-base/09数组循环'
ReactDOM.render(
    // <div>
    // <b><h1>ReactDOM里有一个render方法,功能就是把组件渲染并且构造 DOM 树,然后插入到页面上某个特定的元素上</h1></b>
    // <h2>JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面</h2>
    // </div>
    // React.createElement("div",{
    //     id:"aaaa",
    //     class:"bbbbb"
    // },"我是第二种方案")
    // <div>11111</div>
    <App></App>
    ,
    document.getElementById("root")
    )
//JSX —使用react构造组件,bable进行编译—> JavaScript对象 — ReactDOM.render() —>DOM元素 —>插入页面
    /**
     * jsx=js+xml
     */
相关文章
|
6天前
|
存储 前端开发 JavaScript
深入浅出React框架:构建高效组件化网页的实战指南
【7月更文挑战第9天】在当今快速发展的前端技术领域,React凭借其强大的组件化思想、高效的虚拟DOM以及丰富的生态系统,成为了构建动态用户界面的首选框架之一。本文将带你深入浅出地探索React的核心概念,并通过实战示例,展示如何利用React构建高效、可维护的组件化网页。
38 8
|
19天前
|
前端开发 JavaScript 数据管理
引领潮流:React框架在前端开发中的革新与实践
React,始于2013年,由Facebook驱动,以其组件化、Virtual DOM、单向数据流和Hooks改革前端。组件化拆分UI,提升代码复用;Virtual DOM优化渲染性能;Hooks简化无类组件的状态管理。庞大的生态系统,包括Redux、React Router等库,支持各种需求。例如,`useState` Hook在计数器应用中实现状态更新,展示React的实用性。React现已成为现代Web开发的首选框架。【6月更文挑战第24天】
94 2
|
5天前
|
XML 前端开发 JavaScript
WEB三大主流框架之React
WEB三大主流框架之React
|
10天前
|
前端开发 JavaScript 算法
react【框架原理详解】JSX 的本质、SyntheticEvent 合成事件机制、组件渲染过程、组件更新过程
react【框架原理详解】JSX 的本质、SyntheticEvent 合成事件机制、组件渲染过程、组件更新过程
13 0
|
1月前
|
前端开发 JavaScript 测试技术
|
1月前
|
前端开发
react框架对Excel文件进行上传和导出
react框架对Excel文件进行上传和导出
|
1月前
|
前端开发 JavaScript vr&ar
|
25天前
|
前端开发 NoSQL Java
杨校老师项目之基于SpringBoot+React框架开发的医院挂号管理系统
杨校老师项目之基于SpringBoot+React框架开发的医院挂号管理系统
38 0
|
2月前
|
前端开发 网络架构 UED
React Next.js框架
React Next.js 是一个基于 React 的服务器渲染框架,用于构建高性能的现代Web应用。它提供内置的服务器渲染、静态导出、动态路由功能,并自动进行代码拆分。Next.js 还支持热模块替换、CSS-in-JS 和客户端路由,拥有丰富的插件生态系统,简化了开发过程,提升了应用的性能和用户体验。
|
2月前
|
前端开发 JavaScript 搜索推荐
react-app框架——使用monaco editor实现online编辑html代码编辑器
react-app框架——使用monaco editor实现online编辑html代码编辑器
97 3