上海千语创想科技有限公司
 175-2108-6175
网站建设资讯详细

react框架菜鸟教程,前端小白必看

日期:2020-11-02  作者:千语创想  浏览:6403

React简介

React 是一个比较流行的前端开发框架。

React是一个用于构建用户界面的 JAVASCRIPT 库。

React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。

React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。

React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。

React 特点

声明式设计 − React采用声明范式,可以轻松描述应用。

高效 − React通过对DOM的模拟,最大限度地减少与DOM的交互。

灵活 − React可以与已知的库或框架很好地配合。

JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。

组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。

单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

React 安装

1 引包

react.min.js 、react-dom.min.js 和 babel.min.js:

* react.min.js - React 的核心库

* react-dom.min.js - 提供与 DOM 相关的功能

* babel.min.js - Babel 可以将 ES6 代码转为 ES5 代码,这样我们就能在目前不支持 ES6 浏览器上执行 React 代码。Babel 内嵌了对 JSX 的支持。通过将 Babel 和 babel-sublime 包(package)一同使用可以让源码的语法渲染上升到一个全新的水平。


ReactDOM.render(

    <h1>Hello, world!</h1>,

    document.getElementById('example')

);


以上代码将一个 h1 标题,插入 id=”example” 节点中。


2 通过 npm 使用 React

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

$ npm config set registry https://registry.npm.taobao.org

$ cnpm install [name]


3 使用 create-react-app 快速构建 React 开发环境

$ cnpm install -g create-react-app

$ create-react-app my-app

$ cd my-app/

$ npm start


React JSX

我们不需要一定使用 JSX,但它有以下优点:

* JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。

* 它是类型安全的,在编译过程中就能发现错误。

* 使用 JSX 编写模板更加简单快速。


使用 JSX

ReactDOM.render(

    <h1>Hello, world!</h1>,

    document.getElementById('example')

);

可以在以上代码中嵌套多个 HTML 标签,需要使用一个 div 元素包裹它;

ReactDOM.render(

    <div>

    <h1>菜鸟教程</h1>

    <h2>欢迎学习 React</h2>

    </div>

    ,

    document.getElementById('example')

);


独立文件

你的 React JSX 代码可以放在一个独立文件上,例如我们创建一个 helloworld_react.js 文件,然后在 HTML 文件中引入该 JS 文件:


<body>

    <div id="example"></div>

    <script type="text/babel" src="helloworld_react.js"></script>

</body>


JavaScript 表达式

我们可以在 JSX 中使用 JavaScript 表达式。表达式写在花括号 {};

在 JSX 中不能使用 if else 语句,但可以使用 conditional (三元运算) 表达式来替代。以下实例中如果变量 i 等于 1 浏览器将输出 true, 如果修改 i 的值,则会输出 false.

ReactDOM.render(

    <div>

      <h1>{1+1}</h1>

      <h1>{i == 1 ? 'True!' : 'False'}</h1>

    </div>

    ,

    document.getElementById('example')

);


样式

React 推荐使用内联样式。我们可以使用 camelCase 语法来设置内联样式.

React 会在指定元素数字后自动添加 px


var myStyle = {

    fontSize: 100,

    color: '#FF0000'

};

ReactDOM.render(

    <h1 style = {myStyle}>菜鸟教程</h1>,

    document.getElementById('example')

);


注释

注释需要写在花括号中

ReactDOM.render(

    <div>

    <h1>菜鸟教程</h1>

    {/*注释...*/}

     </div>,

    document.getElementById('example')

);


数组

JSX 允许在模板中插入数组,数组会自动展开所有成员:


var arr = [

  <h1>菜鸟教程</h1>,

  <h2>学的不仅是技术,更是梦想!</h2>,

];

ReactDOM.render(

  <div>{arr}</div>,

  document.getElementById('example')

);

React 组件

我们封装一个输出 “Hello World!” 的组件,组件名为 HelloMessage:


var HelloMessage = React.createClass({

    render:function(){

        return <h1>Hello World</h1>;

    }

});


ReactDOM.render(

    <HelloMessage/>,

    document.getElementById('example')

    )


注意,原生 HTML 元素名以小写字母开头,而自定义的 React 类名以大写字母开头,

比如 HelloMessage 不能写成 helloMessage。除此之外还需要注意组件类只能包含一个顶层标签,否则也会报错.


如果我们需要向组件传递参数,可以使用 this.props 对象,


var HelloMessage = React.createClass({

    render:function(){

        return <h1>Hello {this.props.name}</h1>;

    }

})

ReactDOM.render(

    <HelloMessage name="hhh"/>,

    document.getElementById('example')

    )


注意,在添加属性时, class 属性需要写成 className ,for 属性需要写成 htmlFor ,这是因为 class 和 for 是 JavaScript 的保留字。


我们可以通过创建多个组件来合成一个组件,即把组件的不同功能点进行分离。


var WebSite = React.createClass({

    render:function(){

        <div>

            <Name name={this.props.name} />

            <Link site={this.props.site} />

        </div>

    }

})


var Name = React.createClass({

  render: function() {

    return (

      <h1>{this.props.name}</h1>

    );

  }

});


var Link = React.createClass({

  render: function() {

    return (

      <a href={this.props.site}>

        {this.props.site}

      </a>

    );

  }

});


ReactDOM.render(

  <WebSite name="菜鸟教程" site=" http://www.runoob.com" />,

  document.getElementById('example')

);



转载请注明来自:https://www.qianyuthink.com/news/7442.html

填写您的项目需求给我们

或者直接拨打 7×12小时一对一咨询电话

175 2108 6175

请填写需求信息,我们会在10分钟内与您取得联系

请认真填写需求信息,我们会在10分钟内与您取得联系

×
客服二维码
咨询技术总监
175-2108-6175
客服二维码
技术总监微信
客服二维码