环境搭建:

1.安装node.js

2.安装cnpm

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

3.全局安装create-react-app:

# cnpm install -g create-react-app

4.创建工作目录

# create-react-app  react-todo-list

5.启动(开发版本)服务:

# cd react-todo-list

# npm start  

即可通过localhost:3000在浏览器下访问了。

开发环境入口文件index.js:

项目入口文件

问答:什么是组件化?

包含组件化封装和组件化复用两方面。

一.组件的封装:
react组件封装从页面结构上,包含三部分:
1.视图层V层 render
2.数据层state constructor
3.变化逻辑——事件(数据驱动视图)

二.组件的复用:
通过传入不同的属性props,达到复用的目的。

问答:JSX本质是什么?

JSX概念:这种看起来可能有些奇怪的标签语法既不是字符串也不是 HTML。它被称为 JSX, 一种 JavaScript 的语法扩展。

JSX本质从三个方面讲:
1.jsx语法(标签,js表达式,判断,循环,事件绑定)
(1)注释:
{/* 注释内容 */}
(2)判断类型{}内可以是变量,|| 或 &&判断 ,三元表达式,map循环(跟return)等等。
(3)可是定义样式存入
(4)与HTML语法不同的地方
    class写成className
    tabindex写成tabIndex
    font-size改成fontSize
因为 JSX 的特性更接近 JavaScript 而不是 HTML , 所以 React DOM 使用 camelCase 小驼峰命名 来定义属性的名称,而不是使用 HTML 的属性名称。

2.jsx本质是语法糖,最终会转化为js(React.createElement)才能运行。
    JSX语法无法被浏览器解析(vue中的v-for,v-if等也不行),JSX只是个js语法糖(更好用,更好理解),它在开发环境中编译时,被解析为js,所以页面才会引入React
    # import React from 'react'就是为解析jsx成js的

React.createElement的两种用法:

1.子元素是节点

2.子元素是数组

e.g 子元素是节点

e.g 子元素是数组(ul-li)

3.jsx已经形成了独立的标准。
    JSX是React引入的,但不是React独有的
    React已经将他作为独立标准开放,所以其他项目也可以用的。
    React.createElement()是可以自定义修改的(_h())
    说明:本身功能已经完备;和其他标准兼容和扩展性没问题。

npm安装babel后即可查看react解析JSX的代码结构

JSX代码如下:

React下配置babel需要做三项项工作:

1.# cnpm  install --save-dev babel-plugin-transform-react-jsx

2. 根目录下创建 .babelrc文件

3. 执行 # babel --plugins  transform-react-jsx  文件名

执行babel

结果如下:

实例一:

实例二:

可以将jsx名称转换成h函数

 

React组件化开发的更多相关文章

  1. vue.js组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了下面的内容.借油开车. 组件化 需求一到,接就是怎么实现,技术选型自然 ...

  2. ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS

    react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...

  3. 前端笔记之JavaScript面向对象(四)组件化开发&轮播图|俄罗斯方块实战

    一.组件化开发 1.1组件化概述 页面特效的制作,特别需要HTML.CSS有固定的布局,所以说现在越来越流行组件开发的模式,就是用JS写一个类,当你实例化这个类的时候,页面上的效果布局也能自动完成. ...

  4. Vue 入门之组件化开发

    Vue 入门之组件化开发 组件其实就是一个拥有样式.动画.js 逻辑.HTML 结构的综合块.前端组件化确实让大的前端团队更高效的开发前端项目.而作为前端比较流行的框架之一,Vue 的组件和也做的非常 ...

  5. vue组件化开发实践

    前言 公司目前制作一个H5活动,特别是有一定统一结构的活动,都要码一个重复的轮子.后来接到一个基于模板的活动设计系统的需求,便有了一下的内容.首先会对使用Vue进行开发的一些前期需要的技术储备进行简单 ...

  6. day69:Vue:组件化开发&Vue-Router&Vue-client

    目录 组件化开发 1.什么是组件? 2.局部组件 3.全局组件 4.父组件向子组件传值 5.子组件往父组件传值 6.平行组件传值 Vue-Router的使用 Vue自动化工具:Vue-Client 组 ...

  7. Webpack+Vue+ES6 前端组件化开发mobile-multi-page应用实战总结

    本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws 一.写在前面 项目上线有一段时间了,一个基于webpack+vue+ES6的手机端多页面应用 ...

  8. Android组件化开发的简单应用

    组件化开发的主要步骤: 一.新建Modules 1.新建Project,作为应用的主Module. 2.新建Module:"Common",类型选择"Android Li ...

  9. vue(9)—— 组件化开发 - webpack(3)

    前面两个终于把webpack相关配置解析完了.现在终于进入vue的开发了 vue组件化开发预热 前期准备 创建如下项目: app.js: footer.js: main.js: webpack.con ...

随机推荐

  1. PostgreSQL的HA解决方案-项目概述

    公司使用的数据库时postgresql,一直运行都很流畅,但是最近java新做的管理平台,由于登录用户较多,并发性比较大.另外新系统可能优化也存在问题,所以pg经常崩溃,所以我就开始研究如何事项pg的 ...

  2. sql变量需要加小括号

    declare @num int select top (@num) * from A --注意,使用变量来查询的时候,单个变量需要使用()

  3. Eigen库对齐问题:declspec(align('16')) 的形参将不被对齐

    一:错误提示:error C2719: '_Val': formal parameter with __declspec(align('16')) won't be aligned 英文提示:erro ...

  4. 使用meta实现页面的定时刷新或跳转

    <meta http-equiv="refresh" content="5"> 这个表示当前页面每5秒钟刷一下,刷一下~ <meta http ...

  5. pymmseg 安装方法以及乱码解决

    pymmseg-cpp is a Python port of the rmmseg-cpp project. rmmseg-cpp is a MMSEG Chinese word segmentin ...

  6. 01.Python基础-2.判断语句和循环语句

    1判断语句 1.1判断语句介绍 满足条件才能做某件事 1.2 if语句 if 条件: 语句块 在if判断条件的时候 False:False, 0, '', None, [] True :基本除上面之外 ...

  7. Dict字典的操作

    字典的操作 1.字典新增键值对 已存在内容的字典新增 alient_0 = {"color":"green",position:10} alient_0[&qu ...

  8. 00064_字符串缓冲区_StringBuffer类

    1.StringBuffer类 (1)StringBuffer又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容. (2)tringBuffe ...

  9. 【Educational Codeforces Round 48 (Rated for Div. 2) D】Vasya And The Matrix

    [链接] 我是链接,点我呀:) [题意] 告诉你每一行.每一列的异或和. 让你求出一个符合要求的原矩阵. [题解] 显然应该有 a1^a2^....^an = b1^b2^....^bn 也即两边同时 ...

  10. Could not publish server configuration for Tomcat v7.0 Server at localhost. Multiple Contexts have a path of "/ezoutdoor".

    Could not publish server configuration for Tomcat v7.0 Server at localhost. Multiple Contexts have a ...