并上一节使用的是普通的数据状态管理,不过官方推荐使用装饰器模式,而在默认的react项目中是不支持装饰器的,需要手动启用. 官方参考 一.添加配置 官方提供了四种方法, 方法一.使用TypeScript,顾名思义该方法是项目使用typescript时的配置 方法二.使用babel-preset-mobx, 安装并添加到.babelrc配置中,该方法需要升级一些依赖, babel-core -> @/babel-core 7.x babel-loader -> @/babel-loader 8.…
1.安装 $ yarn add mobx mobx-react 2.新建store/index.js,存放数据(以下思路仅限于父子组件的简单应用) 注意:这里暂时没使用装饰器@observable,装饰器和全局数据见下一节 import { observable, action } from 'mobx' // 观察器(状态) const appState = observable({ timer: 100 }) // 方法 appState.resetTimer = action(() =>…
1.安装插件 npm install --save-dev babel-preset-mobx mobx mobx-react 2.package.json配置 "dependencies": { "@babel/core": "^7.1.0", "@babel/plugin-proposal-class-properties": "^7.1.0", "@babel/plugin-proposal…
最近有个需求,在一个react项目中,实现搜索关键字呈现高亮状态.这个在普通的html文件中还好操作些,在react项目中有点懵逼了,因为react项目中很少操作dom,有点无从下手.但最后还是实现了效果,如下: 首先来看看如何在react中操作dom,广大网友给出两种方案: 一:使用选择器: 1.引入react-dom     import ReactDom from 'react-dom' 2.给react节点设置id或类名等标识     <span id='tip'></span&…
1.mobx状态管理   安装: creact-react-app mobx  …
本文作者:胡子大哈 原文链接:https://scriptoj.com/topic/178/如何在非-react-项目中使用-redux 转载请注明出处,保留原文链接和作者信息. 目录 1.前言 2.单纯使用 Redux 的问题 2.1.问题 1:代码冗余 2.2.问题2:不必要的渲染 3.React-redux 都干了什么 4.构建自己项目中的 "Provider" 和 "connect" 4.1.包装渲染函数 4.2.避免没有必要的渲染 5.总结 6.练习 1.…
前言 或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处,本文不会安利大家使用Redux 概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在React项目中使用Redux react-thunk 中间件,作用:支持异步action 目录结构 Tips:与Redux无关的目录已省略 |--src |-- store Redux目录…
概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在React项目中使用Redux react-thunk 中间件,作用:支持异步action 目录结构 Tips:与Redux无关的目录已省略 |--src |-- store Redux目录 |-- actions.js |-- index.js |-- reducers.js |-- state.…
目录 认识JSS 什么是JSS JSS 的常见实现 JSS 的好处与坏处 好处 坏处 使用模块化CSS实现JSS 安装插件 在React项目中的tsconfig.json中添加配置 vscode项目中添加配置 认识JSS 什么是JSS 简单来说,一句话概括CSS in JS (JSS),就是"行内样式"(inline style)和"行内脚本"(inline script). 因为,自从React出现以后,基于组件化的要求,强制把HTML.CSS.JavaScrip…
在react项目中实现此功能可借助 react-rnd 库,文档地址:https://github.com/bokuweb/react-rnd#Screenshot .下面是实例运用: import React, { Component } from 'react' import PropTypes from 'prop-types' import assign from 'object-assign' import classNames from 'classnames' import _ f…
最近在react项目中需要实现一个,右键自定义菜单功能.找了找发现纯react项目里没有什么工具可以实现这样的功能,所以在网上搜了搜相关资料.下面我会附上完整的组件代码. (注:以下代码非本人原创,具体详情请参考 https://blog.csdn.net/anyicheng2015/article/details/78581064) import React, { Component } from 'react' import PropTypes from 'prop-types' impor…
这里我们要在自己搭建的react项目中使用ECharts,我们可以在ECharts官网上看到有一种方式是在 webpack 中使用 ECharts,我们需要的就是这种方法. 我们在使用ECharts之前要先安装ECharts,在以往的开发模式中,我们很多使用就是把官网中的ECharts的核心js文件导入到我们的html或者是jsp等文件里面,但是在react项目中,我们可以直接使用node.js的npm命令安装: npm install echarts --save 这个时候我们的ECharts…
# -*- coding:utf-8 -*- # Author: json_steve from flask import Flask, current_app, make_response, request, session app = Flask(__name__) app.secret_key = '123' @app.route('/') def index(): response = make_response('jsonsteve') # response.headers['Set-…
前言 在第二小节中,我们讨论了利用TypeScript创建Web项目的实现,在本下节,我们讨论一下如何结合React创建一个具备TypeScript类型的应用项目. 准备 Webpack配置在第二小节项目的基础上做了一些修改, 添加React相关依赖:react.react-dom.@types/react 和@types/react-dom 修改Webpack配置文件 修改webpack.base.config.js,其余文件和第二小节保持一致,修改如下: const HtmlWebpackP…
今天想跟大家分享一下redux在react项目中的简单使用 1 1.redux使用相关的安装 yarn add redux yarn add react-redux(连接react和redux) 2. redux在项目中的基础使用 1.在index.js入口文件注入store import { Provider } from "react-redux" import store from "./redux/store" ReactDOM.render( <Pr…
如果你的项目中并没有用到redux,那本文你可以忽略 问题引入 纯粹的单页面react应用中,通过this.props.history.push('/list')就可以进行路由跳转,但是加上了redux后,使用这个语句并不能生效.相信你在做的过程也遇到了此问题,控制台报错了-_- 1 Uncaught TypeError: Cannot read property 'push' of undefined 解决方案 在将要使用js控制路由的组件中引入withRouter方法; 大专栏  react…
react项目中ant-design按需加载,使用react-app-rewired的时候报错 运行npm start或者yarn start报如下错误: TypeError: injectBabelPlugin is not a function 原因好像说是react-scripts 升级到 2.1.2 以后破坏了 react-app-rewired 解决方法,对react-scripts进行降级处理 npm install react-app-rewired@2.0.2-next.0 成功…
一.react项目中使用less 1. 安装配置 npm i -D less less-loader 2. 查看webpack配置 npm run eject 此操作不可逆,生成新的目录. 3. 修改其中的webpack.config.js文件 二.react 16.12.0 中修改antd的主题样式 npm i -D babel-plugin-import 2. 在package.json中找到对babel的配置,并进行如下修改 "babel": { "presets&qu…
react-amap 这是一个基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中. 文档实例预览: Github Web | Gitee Web 特性 ️ 自动加载高德地图 SDK(通过创建 Script 标签的形式加载),包括第三方 SDK. 使用 Typescript 编写,集成高德地图 SDK @type 声明文件(包括中文注释). ⚛️ 支持 React Hook 新增特性(需要 React 16.8+). 不依赖任何第三方组件. 安装 不依赖 uiw 组件…
使用create-react-app脚手架搭建初始化项目 > npm install -g create-react-app > npx create-react-app my-app create-react-app构建的项目默认使用css语法,但是隐藏的webpack配置中配置支持了css/sass/scss 要想使用less/scss及全局样式/变量首先需要执行npm run eject命令暴露webpack等配置文件等信息 该操作不可逆,会在项目根目录中生成config(配置文件)和s…
前言 现在最热门的前端框架,毫无疑问是React. React是一个状态机,由开始的初始状态,通过与用户的互动,导致状态变化,从而重新渲染UI. 对于小型应用,引入状态管理库是"奢侈的". 但对于复杂的中大型应用,引入状态管理库是"必要的". 现在热门的状态管理解决方案Redux,MobX相继进入开发者的视野. 正如爱因斯坦所说的 “ 让一切事物尽可能的简单,但不要简单”. 尽管让我们来填一填 MobX 的坑. 介绍 1.入门   image 对于应用开发中的常见问…
需求 展示海南省地图,点击市高亮展示,并在右侧展示对应市的相关数据. 准备工作 Echarts 海南地图json 效果图 代码 index.tsx import React, { useRef, useEffect, useState } from "react"; import Sss from "../../images/index/sss.png"; import SssActive from "../../images/index/sss-on.p…
先看是什么,再看怎么用: redux-thunk是一个redux的中间件,用来处理redux中的复杂逻辑,比如异步请求: redux-thunk中间件可以让action创建函数先不返回一个action对象,而是返回一个函数: react-redux相当于一个适配react的一个redux插件:redux本身可以在任何项目中使用,react-redux带来了更适合react的方法: 而redux就是来管理数据的一个仓库了. 核心概念是使用store来作为一个数据仓库,所有组件都来通过数据来渲染视图…
大家都知道BizCharts是基于react封装的一套图表工具,而HighCharts是基于jQuery的.但是由于本人对BizCharts甚是不熟,所以在react项目开发中选择了HighCharts,在使用及对接数据的时候也是遇到了各种问题. 下面简单说下项目需求:首先是两个网络数据源,要求随时间的变化网络折线图不断更新,且当展示一定的数据点后开始折线图从右往左平移. 下面附上该组件所有代码. import React, { Component } from 'react' import P…
前段时间有写过一个TypeScript在node项目中的实践. 在里边有解释了为什么要使用TS,以及在Node中的一个项目结构是怎样的. 但是那仅仅是一个纯接口项目,碰巧赶上近期的另一个项目重构也由我来主持,经过上次的实践以后,尝到了TS所带来的甜头,毫不犹豫的选择用TS+React来重构这个项目. 这次的重构不仅包括Node的重构(之前是Express的项目),同时还包括前端的重构(之前是由jQuery驱动的多页应用). 项目结构 因为目前项目是没有做前后分离的打算的(一个内部工具平台类的项目…
序言 本文会侧重于TypeScript(以下简称TS)在项目中与React的结合使用情况,而非TS的基本概念.关于TS的类型查看可以使用在线TS工具TypeScript游乐场 React元素相关 React元素相关的类型主要包括ReactNode.ReactElement.JSX.Element. ReactNode.表示任意类型的React节点,这是个联合类型,包含情况众多: ReactElement/JSX.从使用表现上来看,可以认为这两者是一致的,属于ReactNode的子集,表示"原生的…
一.前言 单独的使用typescript 并不会导致学习成本很高,但是绝大部分前端开发者的项目都是依赖于框架的 例如和vue.react 这些框架结合使用的时候,会有一定的门槛 使用 TypeScript 编写 react 代码,除了需要 typescript 这个库之外,还需要安装@types/react.@types/react-dom npm i @types/react -snpm i @types/react-dom -s 至于上述使用@types的库的原因在于,目前非常多的javas…
前言 自从入坑WebAssembly以来,躺了很多坑,也浏览了很多资料,都没有看到很多能够直接在前端项目中使用WebAssembly的例子.即使有,我自己按照介绍的步骤一步一步来, 也会报各种错误,官方的文档也写的比较模糊.于是,就决定自己撸一个,让React项目能够直接的借助Webpack,在代码中引入已经编译好的C++模块. 写一个C语言模块 int add(int a, int b) { return a + b; } 使用emscripten对C模块进行编译 执行以下代码对上面的add.…
在构建react项目时,默认使用的webpack-dev-serve有热刷新功能,但是局限是修改一处会使整个页面刷新 当引入了react-hot-loader时,可以实现局部刷新,即同个页面上,某一处的数据修改不会让整个页面一起刷新 import React from 'react'; import ReactDOM from 'react-dom'; import {AppContainer} from 'react-hot-loader'; import App from './App';…
刚开始接触EF框架的时候总是不明白: 为什么查询出来的对象 Remove().再 SaveChanges()就会把数据删除.而自己 new 一个Person()对象,然后 Remove()不行? 为什么查询出来的对象修改属性值后.再 SaveChanges()就会把数据库中的数据修改? 随着慢慢的深入研究和网上查找资料就明白了,原来EF的背后还有一套自己的对象状态管理体系. 在EF中的对象有五个状态: 1.Detach(游离态,脱离态) --> 自己动手new出来的对象就是处于Detach状态的…