zoukankan      html  css  js  c++  java
  • React基础

    一.简介

    二.安装

    一.简介

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

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

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

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

    2.React是Facebook开源的一个用于构建用户界面的一款JavaScript库,现已应用于Facebook及旗下Instagram应用。

    React与庞大的AngularJS不同的地方在于它只专注于MVC框架中的V,即视图;这点使得React很容易与开发者已有的开发栈进行融合。

    React在使用的时候,你应该从UI出发,抽象出不同的组件,继而将它们拼装起来;这点顺应了Web开发组件化的趋势。

    3.React和其他一些JS框架的比较

    • React不是一个MVC框架,它是构建易于可重复调用的web组件,侧重于UI, 也就是view层
    • 其次React是单向的从数据到视图的渲染,非双向数据绑定
    • 不直接操作DOM对象,而是通过虚拟DOM通过diff算法以最小的步骤作用到真实的DOM上。
    • 不便于直接操作DOM,大多数时间只是对 virtual DOM 进行编程

    4.React的应用情况

    React在国外应用的比较多,例如Facebook、Yahoo、Raddit等都有使用到它。React在国内的应用相对较少,杭州大搜车算一个。大多技术要在国内应用起来一般是较慢的,不过React确实感觉比较特殊,特别是UI的组件化和Virtual DOM的思想。

    5.React 是一个用于构建用户界面的JavaScript库。

    • 用做UI: 许多人把React当做MVC设计模式中的视图(view),当把React成为你的技术掌握之后, 它可以很轻松应用于一个小功能的项目。
    • 虚拟DOM:React用一个”虚拟DOM”实现了超高的性能,配合nodeJS也可以实现在服务端的渲染,不存在耗时的浏览器dom渲染。
    • 数据流: React是一种减少引用数据流的实现方式,并且比传统的方式更容易实现数据绑定。
      React 特点
      
      1.声明式设计 −React采用声明范式,可以轻松描述应用。
      2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
      3.灵活 −React可以与已知的库或框架很好地配合。
      4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
      5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
      6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

    二.安装

    开始的最快方法是从CDN提供JavaScript(也可以在cdnjs 和 jsdelivr):

    <!-- 核心React库 -->
    <script src="https://fb.me/react-0.13.3.js"></script>
    <!--浏览器中的JSX变换器,在预编译JSX时删除。 -->
    <script src="https://fb.me/JSXTransformer-0.13.3.js"></script>

    我们还制作了一个 入门工具包如果这是你第一次使用React,这可能是有用的。 它包括一个网页,其中包含使用React与实时代码的示例。

    如果你想使用 bower, 这很简单:

    bower install --save react

    创建一个关于React的副本

    我们在使用react.js之前要先搭建nodeJs,因为要引用其中大量的库,或许是你已经熟悉的。

    必备条件

    • 你的node版本应该在v0.10.0+以上(或许能在低版本上运行,我们没有测试过) 
    • 你应该熟悉npm,并且使用’sudo’以保证依赖包为全局安装 
    • 你应该熟悉git 

    构建

    一旦你有了知识库的克隆,建立一份 react.js 真的很简单。

    # grunt-cli is needed by grunt; you might have this installed alreadynpm install -g grunt-clinpm installgrunt build

    在这一点上,你应该有一个构建/目录填充您需要使用React的所有内容。示例应该都可以工作。

    Grunt

    我们使用Grunt来自动化执行许多任务。运行 grunt -h 查看大部分完整的列表。 其中重要的知识点:

    /*用PhantomJS创建并运行测试程序*/
    grunt test
    /*在你的浏览器上创建运行*/
    grunt test --debug
    /*你可以运行一个程序的时候加上'--filter'获得更快的速度。*/
    grunt fasttest --filter=ReactIdentity
    /*用ESLint保证高质量代码*/
    grunt lint
    /*销毁创建的目录*/
    grunt clean 

    React 安装

    React 安装

    本节讲解 React 安装是如何操作的。

    React 可以直接下载使用,下载包中也提供了很多学习的实例。

    本教程使用了 React 的版本为 15.4.2,你可以在官网 http://facebook.github.io/react/ 下载最新版。

    你也可以直接使用W3Cschool教程的 React CDN 库,地址如下:

    <script src="//www.w3cschool.cn/statics/assets/react/react.min.js"></script>
    <script src="//www.w3cschool.cn/statics/assets/react/react-dom.min.js"></script>
    <script src="//www.w3cschool.cn/statics/assets/react/babel.min.js"></script>

    以下实例输出了 Hello, world!

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8" />
        <title>Hello React!</title>
        <script src="//www.w3cschool.cn/statics/assets/react/react.min.js"></script>
        <script src="//www.w3cschool.cn/statics/assets/react/react-dom.min.js"></script>
        <script src="//www.w3cschool.cn/statics/assets/react/babel.min.js"></script>
      </head>
      <body>
        <div id="example"></div>
        <script type="text/babel">
          ReactDOM.render(
            <h1>Hello, world!</h1>,
            document.getElementById('example')
          );
        </script>
      </body>
    </html>

    实例解析:

    实例中我们引入了三个库: 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" 节点中。

    • 注意:

      如果我们需要使用 JSX,则 <script> 标签的 type 属性需要设置为 text/babel。

    • 通过 npm 使用 React

      如果你的系统还不支持 Node.js 及 NPM 可以参考我们的 Node.js 教程

      我们建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack,本教程使用 webpack。

    • 第一步、安装全局包

      $ npm install babel -g
      $ npm install webpack -g
      $ npm install webpack-dev-server -g

      第二步、创建根目录

      创建一个根目录,目录名为:reactApp,再使用 npm init 初始化,生成 package.json 文件:

      $ mkdir reactApp
      $ cd reactApp/
      $ npm init
      name: (reactApp) youj-react-test
      version: (1.0.0) 
      description: W3Cschool教程 react 测试
      entry point: (index.js) 
      test command: 
      git repository: 
      keywords: 
      author: 
      license: (ISC) 
      About to write to /Users/laolan/www/reactApp/package.json:
      
      {
        "name": "youj-react-test",
        "version": "1.0.0",
        "description": "W3Cschool教程 react 测试",
        "main": "index.js",
        "scripts": {
          "test": "echo "Error: no test specified" && exit 1"
        },
        "author": "",
        "license": "ISC"
      }
      
      
      Is this ok? (yes)

      第三步、添加依赖包及插件

      因为我们要使用 React, 所以我们需要先安装它,--save 命令用于将包添加至 package.json 文件。

      $ npm install react --save
      $ npm install react-dom --save

      同时我们也要安装一些 babel 插件

      $ npm install babel-core
      $ npm install babel-loader
      $ npm install babel-preset-react
      $ npm install babel-preset-es2015

      第四步、创建文件

      接下来我们创建一些必要文件:

      $ touch index.html
      $ touch App.jsx
      $ touch main.js
      $ touch webpack.config.js

      第五步、设置编译器,服务器,载入器

      打开 webpack.config.js 文件添加以下代码:

      var config = {
         entry: './main.js',
          
         output: {
            path:'./',
            filename: 'index.js',
         },
          
         devServer: {
            inline: true,
            port: 7777
         },
          
         module: {
            loaders: [ {
               test: /.jsx?$/,
               exclude: /node_modules/,
               loader: 'babel',
                  
               query: {
                  presets: ['es2015', 'react']
               }
            }]
         }
          
      }
      
      module.exports = config;
      • entry: 指定打包的入口文件 main.js
      • output:配置打包结果,path定义了输出的文件夹,filename则定义了打包结果文件的名称。
      • devServer:设置服务器端口号为 7777,端口后你可以自己设定 。
      • module:定义了对模块的处理逻辑,这里可以用loaders定义了一系列的加载器,以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader对文件进行处理,这正是webpack强大的原因。

      现在打开 package.json 文件,找到 "scripts" 中的 "test" "echo "Error: no test specified" && exit 1" 使用以下代码替换:

      "start": "webpack-dev-server --hot"

      替换后的 package.json 文件 内容如下:

      $ cat package.json 
      {
        "name": "youj-react-test",
        "version": "1.0.0",
        "description": "W3Cschool教程 react 测试",
        "main": "index.js",
        "scripts": {
          "start": "webpack-dev-server --hot"
        },
        "author": "",
        "license": "ISC",
        "dependencies": {
          "react": "^0.14.7",
          "react-dom": "^0.14.7"
        }
      }

      现在我们可以使用 npm start 命令来启动服务。--hot 命令会在文件变化后重新载入,这样我们就不需要在代码修改后重新刷新浏览器就能看到变化。

      第六步、index.html

      设置 div id = "app" 为我们应用的根元素,并引入 index.js 脚本文件。

      <!DOCTYPE html>
      <html>
      
         <head>
            <meta charset = "UTF-8">
            <title>React App - W3Cschool教程(w3cschool.cn)</title>
         </head>
      
         <body>
            <div id = "app"></div>
            <script src = "index.js"></script>
         </body>
      
      </html>

      第七步、App.jsx 和 main.js

      这是第一个 react 组件。后面的章节我们会详细介绍 React 组件。这个组件将输出 Hello World!!!

      App.jsx 文件代码

      import React from 'react';
      
      class App extends React.Component {
         render() {
            return (
               <div>
                  Hello World!!!<br />
                  欢迎来到W3Cschool教程学习!!!
               </div>
            );
         }
      }
      
      export default App;

      我们需要引入组件并将其渲染到根元素 App 上,这样我们才可以在浏览器上看到它。

      main.js 文件代码

      import React from 'react';
      import ReactDOM from 'react-dom';
      
      import App from './App.jsx';
      
      ReactDOM.render(<App />, document.getElementById('app'))

      注意:

      如果想要组件可以在任何的应用中使用,需要在创建后使用 export 将其导出,在使用组件的文件使用 import 将其导入。

      第八步、运行服务

      完成以上配置后,我们即可运行该服务:

  • 相关阅读:
    PyCharm设置Python版本,你肯定不知道!
    Python学习笔记之二——Python的运行机制,一般人肯定不会
    Django开发登录功能实战
    Python基础语法总结【新手必学】
    Python爬虫实现抓取腾讯视频所有电影【实战必学】
    委托和事件:要注意的事项
    asp.net网页防刷新重复提交、防后退解决办法!
    重新复习基础使用的网上资料
    JS和CS互访【后台前台代码调用JavaScript变量以及JavaScript调用代码变量】
    重新学习基础:草稿3(2)【后续】
  • 原文地址:https://www.cnblogs.com/lukelook/p/10481534.html
Copyright © 2011-2022 走看看