React ----- 01 react初识

1.什么是react?

官方解释: 用于构建用户界面的JavaScript库。
对于web端开发人员而言,主要离不开三个技术。
html -> 构建页面结构
css -> 构建界面样式
javascript -> 构建页面内容和交互

jQuery -> vue react Anaular

2.react的特点

  • 1.声明式编程

    • 声明式编程是目前整个大前端开发的模式:Vue、react,angular。
    • 它允许我们只需要维护自己的状态,当状态改变时,React可以根据最新的状态区渲染我们的UI界面。
  • 2.组件化开发

    • 把整个大的页面拆分为对应的小的组件。
  • 3.多平台适配

    • web页面,移动端应用程序

3.命令式编程和声明式编程

  • 命令式编程:每做一个操作,都是给计算机(浏览器)一步步命令。
  • 声明式编程:它描述目标的性质,让计算机明白目标,而非流程。

4.开发react必须依赖三个库

  • react: 包含react所必需的核心代码(包含了react + reactNative)

  • react-dom; react渲染在不同平外所需要的核心代码

  • babel: 将jsx转换为react代码的工具 (同步ES5,ES6语法)

  • react-dom针对web和native所完成的事情不同。

    • web端:react-dom会将jsx最终渲染成真实dom,显示在浏览器
    • native: 渲染成对应的组件

<!-- 添加react依赖 -->
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

5.react 第一份代码!(改变页面元素中的数据)

第一种:原生js写法

//1.定义数据
let msg = 'Hello World';

//2.显示元素
const title01 = document.getElementsByTagName('h2')[0];
title01.innerHTML = msg;

//3.改变数据
const btn = document.getElementsByTagName('button')[0];

btn.addEventListener('click',() => {
    title01.innerHTML = 'Hello React!'
})

第二种:使用react写法

<!-- 注意事项:使用jsx,并且希望script中的jsx代码被解析,必须在script标签中添加一个属性 -->
<script type="text/babel">
    let msg = 'Hello world';
    function btnClick(){
        msg = 'Hello React!'
        console.log(msg);
        render();
    }
    

    function render(){
        ReactDOM.render(
    <div>
        <h2>{msg}</h2>
        <button onClick = {btnClick} >改变文本</button>    
    </div>,
    document.getElementById('app'));
    }
    render();

//使用函数多次执行react的区别在于,react中没有双向数据绑定。
</script>

第三种:使用react组件化写法

<script type="text/babel">
    // 封装APP组件
    class APP extends React.Component {
        constructor() {
            super();
            this.state = {
                message:"Hello World!"
            }
        }

        btnClick() {
            this.setState({
                message:"Hello React!"
            })
        }

        render() {
            return (
                <div>
                    <h2>{this.state.message}</h2>    
                    <button onClick={this.btnClick.bind(this)}>改变文本</button>
                </div>
            )
        }
    }

    //渲染组件
    ReactDOM.render(<APP/>,document.getElementById('app'))
</script>

心之所向,虽远吾亦向往之。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值