美文网首页
React(一)—— HelloWorld

React(一)—— HelloWorld

作者: 感觉不错哦 | 来源:发表于2019-02-10 13:41 被阅读74次

最近开始重新学习React,以此记录自己的历程

React是啥?这些话就不扯了,直接进入正题

引入js

首先要说明的是我学习的是第15个版本的,目前官方最新版本是16.8 

之所以学习15个版本是因为更多的学习api的使用,16版本增加的很多功能从学习上来说用处不是很大

https://github.com/facebook/react 可以了解一下更新内容,此处我使用15版本的进行学习
我使用的js下载
https://github.com/facebook/react/releases?after=16.0.0-beta.5

下载react.js react-dom.js即可

OK! 现在我们打开编译器(我使用的是vscode),新建HTML 并引入JS

React与Vue类似,同样是渲染div,因此后面的路由学习相当重要

第一个HelloWorld

我先直接打出代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>

    </head>
    <body>
        <div id="div">

        </div>
    </body>
    <script src="./common/react.js"></script>
    <script src="./common/react-dom.js"></script>
    <script>
    var HelloComponent = React.createClass({
        render:function(){ 
            return React.createElement('h1',null,'Hello world')
        }
    })
    
    ReactDOM.render(React.createElement(HelloComponent,null),document.getElementById('div'))

    </script>
    </html>

直接打开本地的HTML 即可看到效果

我们先不管格式这些等等,看过官网的肯定见过这串代码
ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('div')
);
我们来试一下
    <script>
    ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('div')
    );
    </script>
打开页面会发现是没有内容并报错的,这是因为 React 独有的 JSX 语法,跟 JavaScript 不兼容

JSX

JSX即Javascript XML,它使用XML标记来创建虚拟DOM和声明组件

使用注意

script:type类型必须为text/babel
语法支持,使用Babel来进行转换,但是为了方便我们这里直接引入Babel的核心文件 browser.min.js
<script src="http://cdn.bootcss.com/babel-core/5.8.38/browser.min.js"></script>

实际当中不建议如此使用,转换相当慢 只是为了学习方便

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>

    </head>
    <body>
        <div id="div">

        </div>
    </body>
    <script src="./common/react.js"></script>
    <script src="./common/react-dom.js"></script>
    <script src="http://cdn.bootcss.com/babel-core/5.8.38/browser.min.js"></script>
    <script type="text/babel">
    ReactDOM.render(
        <h1>Hello, world!</h1>,
        document.getElementById('div')
    );

    </script>
    </html>

此时效果就可以出来了

两种写法相同但是一般使用第二种JSX写法,但是习惯还是建议使用第一种习惯,组件化开发

    <script type="text/babel">
       var HelloComponent = React.createClass({
           render:function(){
               return <h1>Hello World!</h1>
           }
       })
       ReactDOM.render(<HelloComponent/>,document.getElementById('div'))
    </script>

JSX是支持表达式的,你只要使用{}括号,就可以使用表达式了

       var HelloComponent = React.createClass({
           render:function(){
               return <h1>Hello {this.props.name?this.props.name:'World!'}</h1>
           }
       })

       ReactDOM.render(<HelloComponent name="React"/>,document.getElementById('div'))

那这串代码也很容易理解,在模板使用变量 vue称之为插值,这里叫表达式,可以使用三元二元(|| &&)但是不支持if else

刚接触react,语法方面还很生疏 要多看

相关文章

网友评论

      本文标题:React(一)—— HelloWorld

      本文链接:https://www.haomeiwen.com/subject/nmvteqtx.html