环境搭建:

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. java 抽象工厂模式简单实例

    抽象工厂模式:提供一个创建一系列的相关的或者依赖的对象的接口,无需指定它们的具体实现类,具体的时间分别在子类工厂中产生. 类似于工厂模式:隔离了具体类的生产实现,使得替换具体的工厂实现类很容易.包含有 ...

  2. 模拟试题C

    模拟试题C 一.单项选择题(2′*14 =28′) 1.双线性法向插值法(Phong Shading)的优点是( ) A)法向计算精确 B)高光域准确 C)对光源和视点没有限制 D)速度较快 2.用编 ...

  3. ZBrush带你发掘脸部雕刻的秘诀(上)

    骨骼,是一门基础艺术,几百年来一直为伟大的艺术大师所研究,它曾经,也将一直是创作现实且可信角色的关键,提高骨骼知识更将大大提高雕刻技能. 当然,这对于现实角色很重要,对卡通和风格化的角色也同样重要,底 ...

  4. 'input propertychange' 当输入框文字改变时触发的事件!

    $('.amount_input').bind('input propertychange', function() { console.log(2); $('.list label').remove ...

  5. JS 20180416作业

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 路飞学城Python-Day100

    Django项目之图书馆项目 1.项目架构 2.表结构设计 from django.db import models # Create your models here. #作者详情表 class A ...

  7. linux下查看mysql版本的四种方法

    Linux查看MySQL版本的四种方法 1 在终端下执行 mysql -V 2 在help中查找 mysql --help |grep Distrib 3 在mysql 里查看 select vers ...

  8. 中国电信线CTF线下选拨writeup

    [盟军密码|30分] 二战时盟军截获德军一段密码,密文为:0000011000000000101010110111000011000111100011110001001100111000111001( ...

  9. MYSQL存储过程初步认知

    存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...

  10. Vue接口日常学习

    最近使用uni.app 进行app的开发  页面搭完之后,发现不会调接口,今天学习了下 各个程序运行时,都会发起网络请求,网络相关的API在使用之前都会在使用前配置域名白名单 首先   现在中间件上一 ...