首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Cellinlab's Blog

    React 进阶 - React Router

    # 单页面应用 用 React 或者 Vue 构建的应用都是单页面应用,单页面应用是使用一个 HTML 前提下,一次性加载 JavaScript , CSS 等资源,所有页面都在一个容器页面下,页面切换实质是组件的切换 # 路由原理 # History, React-Router, React-Router-DOM History ,React-Router , React-Router-Dom 三者的关系: History 整个 React-Router 的核心,里面包括两种路由模式下改变路由的方法,和监听路由变化方法等 React-Router 有了 History 路由监听 / 改变的核心,那么需要调度组件负责派发这些路由的更新 ,也需要容器组件通过路由更新,来渲染视图 在 History 核心基础上,增加了 Router ,Switch ,Route 等组件来处理视图渲染 React-Router-DOM 在 React-Router # React 路由原理 BrowserHistory 模式 改变路由 通过调用 api 实现的路由跳转,如在 React 应用中调用 history.push 改变路由,本质上是调用 window.history.pushState

    2.8K21编辑于 2023-05-17
  • 来自专栏Cellinlab's Blog

    React 进阶 - React Mobx

    应用中使用 Mobx ,本质上 mobx 里面的状态,并不是存在 React 组件里面的,是在外部由一个个 mobx 的模块 model 构成,每一个 model 可以理解成一个对象,状态实质存在 model 中,model 状态通过 props 添加到组件中,可以用 mobx-react 中的 Provder 和 inject 便捷获取它们,虽然 mobx 中响应式处理这些状态,但是不要试图直接修改 props 来促使更新,这样违背了 React Prop 单向数据流的原则。 正确的处理方法,还是通过 model 下面的 action 方法,来改变状态,React 实质上调用的是 action 方法。 常用 API mobx-react 中的 api ,用于把 mobx 中的状态,提供给组件,并把组件也变成可观察的 —— mobx 状态改变,组件触发更新。

    1.5K11编辑于 2023-05-17
  • 来自专栏用户9715713的专栏

    React源码--React Fiber

    facebook为什么要使用重构ReactReact Fiber是什么React Fiber的核心算法 - react是如何中断重启任务的react fiber部分源码简化版前言该文章涉及的源码部分基于 React v17.0.2why React Fiber浏览器渲染过程从浏览器的运行机制谈起。 而React执行是要进行两棵树的diff,虽然React根据html的特性对diff算法做了优化,但是如果两棵树比对的层级较深,依旧会远远超过16ms。React Fiber基于此,那如何解决问题呢? 在上图中,React作为js,所有的同步操作执行在最开始,在React执行完成后,后续的html解析,布局渲染等操作才会执行。 在React执行中,最耗时的就是diff算法,React针对html这种场景下做了优化,业界已经没有更好的算法可以缩短diff算法的时间,所以当树的层次很深时,执行时间依旧很长。

    82131编辑于 2022-12-08
  • 来自专栏python3

    React 框架)React技术

    import React from "react";  导入 react 模块     import ReactDom  from "react-dom";导入react 的DOM 模块     class Root extends React.Component :组件类定义,从React.Component 类上继承,这个类生成JSXElement对象即React元素。      创建react元素,第一参数是react组件或者一个HTML的标签明后才能(如:div,span)  ?    1 import React from 'react'; 2 import ReactDom from 'react-dom'; 3 4 5 class Sub extends React.Component 13、带参装饰器    想给装饰器函数增加一个id 参数 1 import React from 'react'; 2 import ReactDom from 'react-dom'; 3

    2K21发布于 2020-02-10
  • 来自专栏Cellinlab's Blog

    React 进阶 - React Redux

    # React-Redux,Redux,React 三者关系 Redux Redux 是一个应用状态管理 js 库,它本身和 React 是没有关系的 Redux 可以应用于其他框架构建的前端应用,甚至也可以应用于 Vue 中 React-Redux React-Redux 是连接 React 应用和 Redux 状态管理的桥梁 React-redux 主要做两件事 如何向 React 应用中注入 redux 中的 Store 如何根据 Store 的改变,把消息派发给应用中需要状态的每一个组件 React React 是一个前端框架,它本身和 Redux 也是没有关系的 # Redux # 三大原则 # React-Redux 用法 React-Redux 是沟通 React 和 Redux 的桥梁,它主要功能体现在如下两个方面: 接受 Redux 的 Store,并把它合理分配到所需要的组件中 订阅 原理 # Provider 注入 Store /* react-redux/src/components/Provider.js */ const ReactReduxContext = React.createContext

    1.7K10编辑于 2023-05-17
  • 来自专栏前端开发随记

    React初识 Hello React

    在html中使用react 首先引入react核心库react-dom和babel文件 文件顺序必须是核心库文件在react-dom文件之前引入,babel.js是用来将jsx解析成js <script crossorigin src="https://unpkg.com/<em>react</em>@16/umd/<em>react</em>.development.js"></script> <script crossorigin src="https://unpkg.com/<em>react</em>-dom@16/umd/<em>react</em>-dom.development.js"></script> <script src="https://unpkg.com /babel-standalone@6/babel.min.js"></script> Hello React <! -- type值需要学text/babel才能写jsx语法 --> <script type="text/babel"> //创建一个虚拟DOM const VDOM =

    Hello React

    75011编辑于 2022-12-15
  • 来自专栏爱明依

    React 学习:react 表单

    blog.csdn.net/qq_32423845/article/details/89330091 目标:写一个留言输入框 表单  获取输入框的值 一、新建CommentBox.js import React from 'react' class CommentBox extends React.Component{ constructor(props){ super(props

    94820发布于 2019-04-27
  • 来自专栏爱明依

    react学习:React状态

    点击数字增加 一:建立LikeButton.js  import React from 'react' class LikeButton extends React.Component{ constructor </button>

    ) } } export default LikeButton 二:在App.js 中引入; import React , { Component } from 'react'; import logo from '.

    1.1K20发布于 2019-04-22
  • 来自专栏杰的记事本

    React Hooks vs React Component

    React为什么要搞一个Hooks? 想要复用一个有状态的组件太麻烦了! 但假如你在大型的工作项目中用react,你会发现你的项目中实际上很多react组件冗长且难以复用。尤其是那些写成class的组件,它们本身包含了状态(state),所以复用这类组件就变得很麻烦。 接下来的事情就交给react了,react将会重新渲染我们的Example组件,并且使用的是更新后的新的状态,即count=1。 react是怎么保证多个useState的相互独立的? 当react要渲染我们的组件时,它会先记住我们用到的副作用。等react更新了DOM之后,它再依次执行我们定义的副作用函数。

    3.9K30发布于 2019-09-04
  • 来自专栏技术墨客

    React Object实现React对象

    不使用ES6 通常情况下,定义一个React组件可以使用ES6规范中的class关键字: class Greeting extends React.Component { render() { React.Component { // ... } Greeting.propTypes = { name: React.PropTypes.string }; Greeting.defaultProps 使用 React.createClass 。 代码混合器 注意: ES6在目前的方案中并不支持代码混合功能,因此在使用ES6编写React代码时并不能实现相关功能。 React提供了生命周期方法来通知创建和销毁事件。 所有混合器的生命周期方法都会被调用,React会按照混合器设定的顺序来执行。 不使用JSX 对于React来说JSX并不是必须要使用的表达式。当在环境中不想在家额外的编译工具时尤其适用。

    1.1K20发布于 2018-08-07
  • 来自专栏Triciaの小世界

    React】初识React&JSX

    rect-dom可以开发Web应用 使用react/react-native(RN)可以开发移动端原生应用(react-native) 使用react可以开发VR(虚拟现实)应用(react360) React脚手架 create-react-app是react官方提供一个脚手架工具,用于创建react项目 命令: npx create-react-app 项目名称 启动项目: yarn start 导包 import React from 'react' import ReactDOM from 'react-dom/client' // 2. 导包 import React from 'react' import ReactDom from 'react-dom/client' // 2. 导包 // import React from 'react' // 17.x 以后的版本不需要引入react import ReactDom from 'react-dom/client' // 2

    2.8K21编辑于 2023-04-12
  • 来自专栏ArcGIS JS API开发

    React基础-5】React Hook

    本文是【React基础】系列的第五篇文章,这篇文章中我们介绍一下在react的函数组件中如何使用类组件中的state和生命周期之类的东西。 Hook简介 hook说白了其实就是一些react中特殊的函数,只不过这些函数允许我们通过钩子的形式钩入一些react的特性,例如我们想要在函数组件中使用state的话就不用将其转为类组件,直接使用useState import React, { useState } from "react"; //对应第一步 const StateHook = () => { const [count, setCount import React, { useState, useEffect } from "react"; //对应第一步 const EffectHook = () => { const [count Hook使用规则 1、只在最顶层使用hook 不要在循环、条件或嵌套中使用hook 2、只在react函数中调用hook 在react函数组件中调用hook 在自定义hook中调用其他hook 自定义hook

    1.3K10编辑于 2022-02-21
  • 来自专栏code秘密花园

    React深入】React事件机制

    关于React事件的疑问 1.为什么要手动绑定 this 2. React事件和原生事件有什么区别 3. React事件和原生事件的执行顺序,可以混用吗 4. 这里的事件执行利用了 React的批处理机制,在前一篇的【React深入】setState执行机制中已经分析过,这里不再多加分析。 因此这样我们在 React事件中获取到的就是组件本身了。 和原生事件有什么区别 React 事件使用驼峰命名,而不是全部小写。 由上面的流程我们可以理解: react的所有事件都挂载在 document中 当真实dom触发后冒泡到 document后才会对 react事件进行处理 所以原生的事件会先执行 然后执行 react合成事件 react事件和原生事件最好不要混用。 原生事件中如果执行了 stopPropagation方法,则会导致其他 react事件失效。因为所有元素的事件将无法冒泡到 document上。

    1.5K40发布于 2019-05-23
  • 来自专栏进击的君君的前端之路

    React学习笔记—React组件

    仔细看上面的代码会发现我们导入的Component类在Title组件定义中被使用了,可是导入的React却没有被使用,试着删除第一行的React网页会立刻报错。 原因是在使用JSX的范围内必须有React。也就是说,在使用JSX的代码文件中,即使代码并没有直接使用React,也一定要导入这个React,这是因为JSX最终会被转译成依赖于React的表达式。 补充:在React出现之初,使用的是React.createClass方式来创造组件类,这种方式已经被废弃了。 3、React组件的数据 React组件的数据分为两种,props和state,无论props或者state的改变,都可能已发组件的重新渲染。 React的props: 在React中,props是从外部传递给组件的数据,一个React组件通过定义自己能够接受的props就定义了自己的对外公共接口。

    1.4K40发布于 2018-06-28
  • 来自专栏前端面试秘籍

    React篇(005)-React 优势

    答案: 1、React 速度很快:它并不直接对 DOM 进行操作,引入了一个叫做虚拟 DOM 的概念,安插在 javascript 逻辑和实际的 DOM 之间,性能好。 4、单向数据流:Flux 是一个用于在 JavaScript 应用中创建单向数据层的架构,它随着 React 视图库的开发而被 Facebook 概念化。

    48710编辑于 2022-05-12
  • 来自专栏静心物语313的Coding

    React-01-React概述

    可以查看某个关键词的搜索量排名方式; 1.百度指数; 2.Google Trends ; React下载文件说明 ---- React核心文件,JSX编译文件,React插件文件; ---- 编辑器:

    74310发布于 2020-03-24
  • 来自专栏小丞前端库

    React核心 -- React-Hooks

    大家好,我是小丞同学,一名大二的前端爱好者 这篇文章是学习 React-Redux 数据共享 的学习笔记 非常感谢你的阅读,不对的地方欢迎指正 愿你忠于自己,热爱生活 hooks 类组件难维护、逻辑不易复用的问题 避免函数重复执行的副作用 应用场景 利用 hooks 取代生命周期函数 让组件有了状态 组件辅助函数 处理发送请求 存取数据 做好性能优化 hooks API 从 react 中引入 1. useState 给函数组件添加状态 初始化以及更新组件状态 const [count, setCount] = React.useState(0) 接收一个参数作为初始值,返回一个数组 Hook() { const [num, setNum] = React.useState(1) return (

    这是一个函数组件 自定义 hooks 放在 utils 文件夹中,以 use 开头命名 例如:模拟数据请求的 Hooks import React, { useState, useEffect } from "react

    1.6K10发布于 2021-10-15
  • 来自专栏小丞前端库

    React核心 -- React-Hooks

    大家好,我是小丞同学,一名大二的前端爱好者 这篇文章是学习 React-Redux 数据共享 的学习笔记 非常感谢你的阅读,不对的地方欢迎指正 愿你忠于自己,热爱生活 hooks 类组件难维护、逻辑不易复用的问题 避免函数重复执行的副作用 应用场景 利用 hooks 取代生命周期函数 让组件有了状态 组件辅助函数 处理发送请求 存取数据 做好性能优化 hooks API 从 react 中引入 1. useState 给函数组件添加状态 初始化以及更新组件状态 const [count, setCount] = React.useState(0) 接收一个参数作为初始值,返回一个数组 Hook() { const [num, setNum] = React.useState(1) return (

    这是一个函数组件 自定义 hooks 放在 utils 文件夹中,以 use 开头命名 例如:模拟数据请求的 Hooks import React, { useState, useEffect } from "react

    1.6K20编辑于 2022-11-15
  • 来自专栏Cellinlab's Blog

    React 16 - 生态:React Router

    React Router 为什么要用路由? "/about" activeClass="selected">About</NavLink> <Prompt>: 满足条件时提示用户是否离开当前页面 import { Prompt } from 'react-router /> <Redirect>: 重定向当前页面,如登录判断 import { Route, Redirect } from 'react-router'; <Route exact path="/" render 获取参数 this.props.match.params.id Path-to-RegExp (opens new window) 应用场景 页面状态尽量通过 URL 参数定义 嵌套路由 每个 React 组件都可以是路由容器 React Router 的声明式语法可以方便的定义嵌套路由

    1.1K20编辑于 2023-05-17
  • 来自专栏用户9715713的专栏

    React源码之React Fiber

    facebook为什么要使用重构ReactReact Fiber是什么React Fiber的核心算法 - react是如何中断重启任务的react fiber部分源码简化版前言该文章涉及的源码部分基于 React v17.0.2why React Fiber浏览器渲染过程从浏览器的运行机制谈起。 而React执行是要进行两棵树的diff,虽然React根据html的特性对diff算法做了优化,但是如果两棵树比对的层级较深,依旧会远远超过16ms。React Fiber基于此,那如何解决问题呢? 在上图中,React作为js,所有的同步操作执行在最开始,在React执行完成后,后续的html解析,布局渲染等操作才会执行。 在React执行中,最耗时的就是diff算法,React针对html这种场景下做了优化,业界已经没有更好的算法可以缩短diff算法的时间,所以当树的层次很深时,执行时间依旧很长。

    57520编辑于 2022-12-19
  • 领券