不使用webpack或其他任何编译打包工具,但使用React的JSX混合语法,直接在浏览器中运行React的元件component,十分钟最快速上手。

image

为什么用React?

  • 数据绑定假定我们需要在网页上呈现一个按钮和一个数字,每点击一次按钮,数字就会增加1,类似于购物车里面商品数量增加的情况。这个要怎么实现?传统的办法是给按钮添加一个onClick事件函数,函数里面获取数字元素的html内容,增加1,然后再修改数字元素的html内容。但现代化的网页开发就很不同,它会用数据把界面元素分隔开,即按钮修改数据,然后所有绑定到这个数据的文字都会自动同步,不需要去获取页面元素也不需要去修改页面元素。界面A->修改->数据->自动同步->界面B。数据模型Model、界面View、以及事件控制器Controller,就形成了MVC的结构模式。
  • 模块复用。每个网站都有很多页面,大部分页面都有着同样的顶部导航栏。把导航栏代码复制到多个页面并不麻烦,但麻烦的是每次修改都要重新复制整理一遍。有没有办法能够重复使用一个导航栏元件,每个页面只要引入这个元件就可以?解决各个模块的复用与整合问题,是现代化网页开发技术的初衷。在以往,我们可以依赖JQuery的ajax读取外部文件(比如顶部导航栏),然后把这个内容再填充到网页中合适的位置。这样做不仅代码麻烦,而且功能有限,更无法实现各个元件之间的结构嵌套和数据交互。现代化网页开发技术依赖于component元件技术,让我们可以自己定制任何新的标签,比如顶部导航栏可以是一个...,它自身就是一个MVC结构,能够独立实现各种功能,也可以和父层、子层元素嵌套或者传递数据和功能。
  • 单页面应用既然我们可以利用component元素把页面各个模块划分成独立的部分,那么我们是否可以放弃页面的概念,而直接使用模块module来拼接各种功能呢?当然是可以的,当我们迁移到模块式组装开发之后,由于各个模块实际上都运行在同一个页面内,互相交换和数据传递就变得自然而且直接,——不再受到页面切换只能依赖地址栏、Cookies或本地存储才能实现交互和数据传递。单页面应用的优势是明显的,但缺点也很明显,那就是如果项目模块分隔的不好,或者项目文件组织管理混乱,那就很容易造成各个模块之间关系错综复杂,无法梳理。另外,缺乏了页面地址栏的变化,也需要重建新的路由模式,这也是个不小的挑战,比较原本基于页面地址栏跳转返回和历史记录的模式是如此成熟好用。其实传统的页面也是一种模块划分的方法,它强制把不同的功能放入相互隔离的各个页面,以此来避免各种功能互相交织导致的项目复杂化。SPA即Single-Page-Application,单页面应用。只是一种建议,并不是现代化网页开发的目标。
  • 完全JS开发现代化网页开发越来越倾向于完全依赖JS进行网页编写,即弱化或替代Html代码,VueJS和ReactJS都在这么做。对于

    Hello!

    这样的html元素,完全等同于js中的对象数据{tagname:'h1',content:'Hello!',id:'a',class:'b'},也就是说我们可以用js把后者完美的翻译成前者,然后插入到页面html中去。当然,如果我们能够在JS中直接使用html标签的话,那就太好了,可以同时享受JS模块化开发和熟悉的html传统语法。React很早就这么做了,那就是它的JSX语法。但JSX语法显然不是浏览器支持的原生格式,所以需要使用Babel工具进行转换。

综上所述,所谓的现代化网页开发的变革,更像是朝着面向对象编程模式的进化,对象也好,模块也好,其实是一种应对复杂情况的功能组织管理模式,要应对更庞大更复杂的网站项目,就必须使用现代化的网页开发模式。

目前行业最主流的现代化网站开发框架就是VueJS、ReactJS和AngularJS。虽然VueJS最简单好用,但我还是选择了React,因为它更松散自由,可玩性更强,还有它那太好用的JSX语法!

基础模板

先看一下index.html的代码:

            

react 引入html文件_React最快速上手教程相关推荐

  1. react 引入html文件_React起手式

    一.引入React 1.从CDN引入(比较麻烦) 先引入 React: https:// .../react.x.min.js 再引入 ReactDOM: https://.../react-dom. ...

  2. Angular 初学者快速上手教程

    课程介绍 本课程是一个系列基础教程,目标是带领读者上手实战,课程以新版本 Angular 的 3 个核心概念作为主线:组件.路由.模块,加上业务开发过程中必须用到的特性:工具.指令.表单.RxJS.i ...

  3. 申请 Let's Encrypt 数字证书,并安装cerbot快速上手教程~~

    申请 Let's Encrypt 数字证书,并安装cerbot快速上手教程~~ Let's Encrypt SSL证书介绍 如今,越来越多的网站已经由HTTP迁移到HTTPS安全协议了.HTTPS不但 ...

  4. 嵌入式SQL编程快速上手教程

    嵌入式SQL编程快速上手教程 声明:我这里标题虽是<嵌入式SQL编程快速上手教程>,但只是嵌入式SQL编程的冰山一角罢了,我会通过举一道简单例题来教小白快速上手嵌入式SQL编程 第一:题目 ...

  5. 【Endnote】EndnoteX9快速上手教程

    想得美,自己慢慢摸索才是硬道理,哪有什么快速上手教程,链接在下面 链接:https://pan.baidu.com/s/1Vtnaz90Iwp3I17M8ijxMWg 密码:ems7

  6. Debussy 快速上手教程

    本文为转载,刚瞄了一眼,应该是在LINUX下的应用快速上手教程.Debussy是个很强大的看V代码及Debug V代码工具.你能方便地看到信号从哪里来到哪里去,比较强大.简单地用,用起来也比较简单.在 ...

  7. layui快速上手教程

    layui 获得 layui 1. 官网首页下载 你可以在我们的 官网首页 下载到 layui 的最新版,它经过了自动化构建,更适合用于生产环境.目录结构如下: codelayui.code ├─cs ...

  8. K210快速上手教程(色块、人脸、声源识别等)

    k210实现各种功能快速上手 前言 开发环境以及材料准备 软件Maixpy IDE使用说明 识别色块并且串口输出最大色块中心坐标 声源方向的坐标识别 基于MicroPython的人脸识别 前言 最近想 ...

  9. 【Three.js】Three.js快速上手教程

    1. Three.js简介 官网对 Three.js 的介绍非常简单:"Javascript 3D library". 即:three.js是JavaScript编写的WebGL第 ...

最新文章

  1. DIY一个DNS查询器:了解DNS协议
  2. mysql大量数据分页优化_mysql大量数据分页优化
  3. mysql数据记录更新版本问题_MySQL版本升级遇到的问题小结
  4. Multilink ppp多链接PPP协议的配置
  5. Win10下VS2015(WDK10)驱动开发环境配置
  6. 用户不在sudoers文件中,需要使用命令 sudo npm install 的解决方法
  7. tar打包时忽略svn目录
  8. MFC基于 单文档为状态栏添加进度条
  9. iPhone5主摄像头图像传感器来自SONY
  10. GoDEX条码打印机批量打印条码设置
  11. linux多核cpu 优化,Ubuntu是否针对多核CPU进行了优化?
  12. 用python画几个东西怎么画_一步一步教你如何用Python画一个滑稽
  13. win10系统升级一段时间后,内存占用过高
  14. 线性同余方程和矩阵乘法
  15. hadoop日常应用的一点小分享(新人鄙见)
  16. android 字符画,抖音上很火的字符画 Android 实现 | 视频转换实现
  17. day9 进程 协程
  18. [乐意黎原创] 左右格式的3D电影怎么播放
  19. H5U PLC EtherCAT总线伺服控制报9510轴错误
  20. h5 Canvas线段的绘制

热门文章

  1. 在线图像识别相似图片_宋源:图像识别传感器在制桶设备上的应用(附视频)...
  2. 【免费毕设】asp.net多功能聊天软件的设计与开发(源代码+lunwen)
  3. node mysql和koa_node+koa2+mysql搭建博客后台
  4. 右键菜单_右键菜单太长会导致电脑卡顿?轻松删除右键菜单无用项
  5. java 流常用接口_java 8新特性5--使用集合流式API
  6. CString类简介
  7. 分区挂载,mount,blkid
  8. 返回一个数组的连续子数组和的最大值
  9. 我是 LinkedIn 的 SRE ,我把 LinkedIn 搞挂了
  10. 一次vue-cli 2.x项目打包优化经历(优化xlsx插件)