React-01课程介绍

React简介

React起源于Facebook的内部项目,该公司积极尝试引入HTML5技术用来架设Instagram网站,开发中发现HTML5的性能下降明显,达不到预期的效果。他们就自己开发了React框架。

ReactJS 官方地址:https://facebook.github.io/react/ (Englist)
https://zh-hans.reactjs.org/ (中文)

GitHub 地址:https://github.com/facebook/react

清楚两个概念
  • library(库):小而巧的库,只提供了特定的API,可以很方便的从一个库切换到另一个库,但是代码几乎不会变。
  • Framwwork(框架):大而全的是框架,矿机按提供了一整套的解决方案,所以如果在项目中间,想切换到另一个框架,比较困难

React特点

  • 虚拟DOM:React也是以数据驱动的,每次数据变化React都会扫描整个虚拟DOM,自动计算与上次虚拟DOM的差异变化,然后针对需要变化的部分进行实际的浏览器DOM更新。(性能好,高效)
  • 组件化:React可以从功能角度横向划分,将UI分解成不同组件,各组件都独立封装,整个UI是由一个个小组件构成的一个大组件,每个组件只关心自身的逻辑,彼此独立
  • 单向数据流:React设计者认为数据双向绑定虽然便捷,但在复杂场景下副作用也是很明显,所以React更倾向于单向的数据流动-从父节点传递到子节点。(使用ReactLink也可以实现双向绑定,但不建议使用)

React 高效原因

  • 虚拟DOM,不总是直接操作DOM
  • DOM Diff 算法(算什么地方有变化,那些地方没有变化,只更新有变化的地方),最小化页面重绘

前端三大主流框架

三大框架一大抄

  • Angular.js较早的前端框架,(在印度比较多) 2009年(谷歌),学习曲线较陡,NG1学习起来比较麻烦,NG2-NG5开始,进行了一系列的改革,也提供了组件化开发的概念,从NG2开始,也支持使用TS(TypeScript)进行编辑;
  • Vue.js最火的(关注的人比较多, 中国比较多)一门前端框架,它是中国人开发的,对我们来说,文档要友好一些。
  • React.js 最流行(用的人比较多,欧美比较多 )的一门框架,因为它的设计很优秀;

React 与 Vue 的对比

  • 什么是模块化:是从代码的角度来进行分析的,把一些可复用的代码,抽离为单个的模块,便于项目的维护和开发

  • 什么是组件化:是从UI界面的角度来进行分析,把一下可复用的UI元素,抽离为单独的组件;便于项目的维护和开发

  • 组件的好处:随着项目规模的增大,手里的组件越来越多,很方便就能把现有的组件,拼接为一个完整的页面。

  • Vue是如何实现组件化的: 通过.vue文件、Vue.component()、Vue.extends()来实现组件化。

     - template    结构
     - script      行为
     - style       样式
    
  • React是如何实现组件化的:React中有组件化的概念,但是,并没有像vue这样的组件化模板文件,React中,一切都是js来表现的;因此要学习React,js要合格,ES6和ES7(async和await)要会用。

开发团队

  • vue是近两年才火起来的,所以,它的社区相互对于react来说,要小一些,可能有一些坑,没人踩过

  • react由于诞生的较早,所以社区较强大,一些常见的问题,坑,最优解决方案,文档,博客在社区都是可以很方便找到的。

  • React室友FacrBook前端官方团队进行维护和更新的;因此,React的维护开发团队,技术实力比较雄厚

  • vue第一版,主要是由作者 尤雨溪专门进行维护的,当vue更新到2.x版本后,也有了一个已尤雨溪为主导的开源小团队,进行相关的开发和维护

社区

移动APP开发体验方面

  • Vue,结合Weex这么技术,提供了迁移到移动端App开发的体验,(Weex,目前只是一个小的玩具,并没有很成功的案例)
  • React,结合ReactNative,也提供了无缝迁移到移动App的开发体验(RN用的最多,也是最火最流行的)

为什么要学习React

  • 和Angular1先比,React设计很优秀,一切基于js并且实现了组件化开发的思想
  • 开发团队实力强悍,不必担心断更的情况
  • 社区强大,很多问题都能找到对应的解决方案;
  • 提供了无缝转到ReactNative上的开发体验,让我们技术能力得到了拓展,增强了我们的核心竞争力
  • 很多企业中,前端项目中的技术选型采用的是React.js

React中几个核心的概念

虚拟DOM(Virtual Document Object Model)

  • DOM的本质是什么:浏览器中的概念,用js对象表示,页面上的元素,并提供了操作DOM对象的API

  • 什么是React中的虚拟DOM:框架中的概念,是程序员用js对象来模拟页面的DOM和DOM嵌套

  • 为什么要实现虚拟DOM:为了实现页面中,DOM元素的高效更新

  • DOM和虚拟DOM的区别

    • DOM
python+opencv简谱识别音频生成系统源码含GUI界面+详细运行教程+数据 一、项目简介 提取简谱中的音乐信息,依据识别到的信息生成midi文件。 Extract music information from musical scores and generate a midi file according to it. 二、项目运行环境 python=3.11.1 第三方库依赖 opencv-python=4.7.0.68 numpy=1.24.1 可以使用命令 pip install -r requirements.txt 来安装所需的第三方库。 三、项目运行步骤 3.1 命令行运行 运行main.py。 输入简谱路径:支持图片或文件夹,相对路径或绝对路径都可以。 输入简谱主音:它通常在第一页的左上角“1=”之后。 输入简谱速度:即每分钟拍数,同在左上角。 选择是否输出程序中间提示信息:请输入Y或N(不区分大小写,下同)。 选择匹配精度:请输入L或M或H,对应低/中/高精度,一般而言输入L即可。 选择使用的线程数:一般与CPU核数相同即可。虽然python的线程不是真正的多线程,但仍能起到加速作用。 估算字符上下间距:这与简谱中符号的密集程度有关,一般来说纵向符号越稀疏,这个值需要设置得越大,范围通常在1.0-2.5。 二值化算法:使用全局阈值则跳过该选项即可,或者也可输入OTSU、采用大津二值化算法。 设置全局阈值:如果上面选择全局阈值则需要手动设置全局阈值,对于.\test.txt中所提样例,使用全局阈值并在后面设置为160即可。 手动调整中间结果:若输入Y/y,则在识别简谱后会暂停代码,并生成一份txt文件,在其中展示识别结果,此时用户可以通过修改这份txt文件来更正识别结果。 如果选择文件夹的话,还可以选择所选文件夹中不需要识别的文件以排除干扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值