react第一天

回顾Vue

  • 基本指令
  • 表单的输入
  • computed计算属性
  • watch监听
  • 修饰符
  • 过滤器
  • 生命周期
  • 动画(过渡动画)
  • 组件(基本组件=>组件嵌套=>组件通信)
  • vue-cli脚手架
  • 路由(基本路由=>路由嵌套=>动态路由=>编程式导航=>路由模式=>name、alias=>导航守卫=>滚动行为)
  • ref属性(快速定位DOM节点、可以实现组件传值)
  • is
  • vuex状态管理(state、action、mutation、getter、module)
  • axios(基本promise)get/post
  • axios拦截器(请求拦截、响应拦截)
  • 权限的概念
  • 网易云(从头到尾从播放到歌词)
  • 美团案例(简易)
  • 后台管理项目(从后端接口一直搭建到PC端)
  • 洋店网(电商项目)
  • UI框架(elementUI,swiper,mintUI,vantUI)
  • 自定义指令
  • 动态样式

(react 入门第一天)

0.react并不是一个框架,它只是一个库

1.react 介绍

React 是Facebook内部的一个JavaScript类库。
React 可用于创建Web用户交互界面。
React不是一个完整的MVC框架,最多可以认为是MVC中的V(View),甚至React并不非常认可MVC开发模式。
React 的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。
React 引入了虚拟DOM(Virtual DOM)的机制。
React 引入了组件化的思想。
React 使用Facebook专门为其开发的一套语法糖–JSX(语法糖)。


2.特点

虚拟DOM
组件化
JSX语法


3.优缺点
  • 优点

组件化开发
​引入虚拟DOM,性能好,响应速度快
JSX语法
单向数据绑定 Data Flow
跨浏览器兼容
完善的生态圈和活跃的社区

  • 缺点

不是完整MVC框架
不适用于复杂的大型应用


4.脚手架与非脚手架安装
  • 概念

用于构建用户界面的 JavaScript 库

  • 官网地址

https://react.docschina.org/

  • 非脚手架(CDN方式)
<script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
react核心库
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
react-dom库
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
babel解析
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
  • 脚手架安装

1、npm install(i) create-react-app -g 全局安装react环境(装一次即可 3.4版本)
2、create-react-app demo (创建项目, demo是项目名称)
3、cd demo(进入项目中)
4、npm start (启动)

  • 脚手架项目目录

demo
├── README.md 阅读指南
├── node_modules 第三方依赖
├── package.json 配置文件
├── .gitignore git忽略文件
├── public 公共文件夹
│ ├── favicon.ico 收藏夹图表(如果你自己要替换,记得清空浏览器缓存)
│ ├── index.html 单页应用中唯一的html
│ └── manifest.json 样式配置
└── src
├── App.css 根组件css文件
├── App.js 根组件js文件
├── App.test.js 测试文件
├── index.css 全局css文件
├── index.js 唯一的js文件
├── logo.svg 初始化的svg
└── serviceWorker.js 服务工作站的配置文件


5.jsx

1.JSX语法遇到 < 就按HTML语法解析,遇到{ 就按JavaScript语法解析
2.使用三元表达式
3.使用函数表达式
4.JSX 标签可以相互嵌套
5.注意换行和缩进,增强代码的可读性,建议使用小括号括上 JSX 代码,防止分号自动插入的bug(关闭vscode中的自动保存自动格式化代码)
6.属性绑定
7.style属性的值必须是一个对象
8.绑定class类名,必须使用className,不能使用class
9.注释 {/* <Index /> */}


6.在脚手架中重写src目录
  • 创建src

创建assets静态资源文件夹
创建components组件文件夹
创建index.js

//第一步引入核心库
import React from 'react'
//第二步引入React-dom库
import ReactDOM from 'react-dom'
//引入css文件
import './index.css'
//引入根组件
import App from './app'
//第三步渲染根组件
ReactDOM.render(<App/>,document.getElementById('root'))

创建index.css(这个文件可写可不写,内容可以写重置样式也可空着,这是全局的css)
创建一个app.js

//创建一个唯一根组件
//第一步 引入核心库
import React from 'react'
//第二步 创建一个函数
function App(){
    return (
        <div>
            <h1>我觉得脚手架好好用啊!!!</h1>
        </div>
    )
}
//第三步 暴露组件
export default App

创建了一个app.css

  • 初始化以上文件之后,记得重启当前服务器

7.在React中创建组件的方式

组件名称被当做标签被渲染的时候 首字母必须大写

  • 方式一 函数创建方式
import React from 'react'
function App(){
    return(
        <div>
        内容
        </div>
    )
}
export default App
  • 方式二 类的创建方式
//import React from 'react'
//class App extends React.Component{}
import React,{Component} from 'react'
class App extends Component{
    render(){
        return(
            <div>
            内容
            </div>
        )
    }
}
export default App

8.vscode中支持jsx语法
  • 首选项=>设置=>emmet=>setting.json
"emmet.includeLanguages": {
"javascript":"javascriptreact",
},

记得重启下


面试题

1.React有哪些优缺点?

2.React解决了什么问题?
答案:
组件化:这是react的核心
开发效率:react代码基本就是组件的组合,只用关心一个render函数,不用关心视图局部的修改
运行效率:react实现了虚拟dom,相比于其他框架具有更优的效率
可维护性:react基于flux或者redux的架构设计,确定定的store很容易定位问题

3.React、vue、angular有什么区别?
答案: 开发者 数据绑定 依赖标准 渲染页面 模式
vue 尤雨溪 双向数据绑定 ES5/es6 模板+脚本+样式 MVVM
react FaceBook 单向数据绑定 es6 JSX 不是MVVM
angular 谷歌 双向数据绑定 typescript 模板 MVC(1)/MVVM(2…)

4.react diff 原理?
答案:当你使用react的时候,在某个时间点render函数创建了一颗react元素树,在下一个state或者props更新的时候,
react函数将创建一颗新的react树,react将对比两棵树的不同之处,计算出如何高效的更新UI(值更新变化的地方)

5.JSX是什么?浏览器怎么解析JSX?
答案:JSX 将 HTML 语法直接加入到 JavaScript 代码中,再通过翻译器转换到纯 JavaScript 后由浏览器执行。
浏览器中通过给script标签添加type="text/bable"属性来解析jsx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值