react-cursor

React.js的不可变状态
授权协议 MIT
开发语言 JavaScript
所属分类 Web应用开发、 常用JavaScript包
软件类型 开源软件
地区 不详
投 递 者 吴嘉禧
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

react-cursor 是不变地处理递归或深度嵌套数据的工具。react-cursor是在ClojureScript中首次看到的抽象的javascript端口。此实现与任何渲染库都没有关联,并且非常小。

示例代码:

var App = React.createClass({
    getInitialState: function () {
        return {
            "a": 10,
            "b": {
                "foo": {
                    "bar": 42,
                    "baz": ['red', 'green']
                }
            }
        };
    },
    render: function () {
        return <pre>{JSON.stringify(this.state, undefined, 2)}</pre>;
    }
});

var Cursor = require('path/to/react-cursor').Cursor;

var cursor = Cursor.build(this) // `this` is the React component's this pointer
                                // or the return value of React.renderComponent

                                cursor.refine('a').value            //=> 10
cursor.refine('a').onChange(11);
cursor.refine('b').refine('foo').value      //=> { 'bar': 42, 'baz': ['red', 'green'] }
cursor.refine('b').refine('foo').onChange({ 'bar': 43, 'baz': ['red', 'green'] })
cursor.refine('b', 'foo', 'baz', 1).onChange('blue')
  • 一、 安装与引入 安装: npm install react-color --save 引入: import React from 'react' import { SketchPicker } from 'react-color' class Component extends React.Component { rend

  • Gitlab React-quill:https://github.com/zenoamaro/react-quill 中文文档 Quill:http://doc.quilljs.cn/1409381 官网 Quill:https://quilljs.com/docs/quickstart/ Gitlab Delta:https://github.com/quilljs/delta 需求: 图片上

  • 地址:https://www.npmjs.com/package/react-native-confirmation-code-field 下载:npm install --save react-native-confirmation-code-field 代码: import React, {Component} from 'react'; import {SafeAreaView, Text,

  • import React, { useState, useEffect, useRef, useMemo } from 'react'; import ReactQuill from 'react-quill'; import { message } from 'antd'; import 'react-quill/dist/quill.snow.css'; import { getTokenAp

  • 案例 dnd.tsx import React, { useState, useRef } from 'react' import "./dnd.less" // react-dnd核心 import { DndProvider } from "react-dnd" import { HTML5Backend } from "react-dnd-html5-backend" import It

  •  1.组件封装 import React, { useState, useEffect, useRef } from 'react'; import ReactQuill from 'react-quill'; import { message } from 'antd'; import 'react-quill/dist/quill.snow.css'; import { getTokenApi

  • import { Table } from 'antd'; import React, { useEffect, useRef, useState } from 'react'; import { Resizable } from 'react-resizable'; import './style.css'; const ResizeableTitle = (props: any) => {

  • 功能点: 1.表格内的行拖拽(drag和drop都放在行上) 2.跨表格的行拖拽(drag事件都放在行上,表格不空时drop事件放在行上,表格空时drop事件放在空提示上) 3.表格拖拽(drag和drop都放在表格的header上) 参考链接: react-dnd:实现跨表格的行拖拽 react-dnd 使用 React DnD 拖放库浅析 react-dnd 用法详解 React Dnd 基本

  • import { ReactElement, useRef, useMemo, forwardRef, useEffect, useImperativeHandle, useCallback, } from "react"; import styled from "styled-components"; import ReactMarkdown from "react-

  • 一个好用的拖拽、自适应布局 react 插件 基本使用: // 显示全部 chart 内容区域 import React,{PureComponent} from 'react'; import {Responsive, WidthProvider } from "react-grid-layout"; const ReactGridLayout = WidthProvider(Responsi

  • title: React Toolkit date: 2022-09-29 14:42:35 tags: React Redux 框架 TypeScript categories: React React Toolkit 首先,React Tookit是React新提出的类Redux状态管理模式。该技术的提出是为了解决Redux的三个常见问题: 廊”配置Redux储存太复杂了“ 樂”必须添加很多包

  • tip:之前写了一个裁剪 但是有bug(参考之前的文章) 现在又遇见这个功能 终究是躲不过了 现已解决之前出现的bug 整理代码并封装成了组件 供大家参考使用 避免踩雷 notice:react版本:15.4.0(博主使用版本,版本的不同,代码可稍作修改) 1.Cropper.js import React, { Component } from 'react' import { Button,

  • 本文主要和大家分享react轮播图组件react-slider-light详解,希望能帮助到大家。 react-slider-light a lightweight Slider component built with react. 一个轻量级的 react 轮播组件 Table of ContentsFeatures特性 Demos演示 Getting Started快速开始Install U

 相关资料
  • 我已经以“正常”的方式构建了我的第一个React应用程序,其中包含有状态存储,现在我正在研究如何使用Este starterkit中使用的不可变全局状态。 所有存储的状态都保持在一个单一的不可变数据结构中 组件没有状态,但基于存储getter函数访问其渲染()中的数据 存储也是无状态的,但是使用游标改变其域的全局应用程序状态。 顶层应用组件侦听状态变化,并重新呈现整个组件树。 组件被实现为"纯",

  • 我正在react中构建简单的todo应用程序,我已经将输入字段作为子元素inputForm元素的一部分。 我可以毫无问题地将函数作为道具从父级传递给子级,但是我不能更新父级状态来存储输入字段上的值。当我在输入字段中键入时,传递的函数正常执行,但当前的托多状态没有更新。 我发现这个问题可以通过使用单一的数据流模式(如通量或回流)来避免,但由于这是我的第一个项目,我想了解如何使用基础知识。 父元素的代

  • 问题内容: 我已经以“正常”方式用状态存储构建了我的第一个React应用程序,现在我正在研究使用像Este入门套件中所使用的不可变全局状态。 所有存储的状态都保存在一个不变的数据结构中 组件没有状态,但是根据商店的getter函数访问其render()中的数据 存储也是无状态的,但是会使用游标更改其域的全局应用程序状态。 顶层应用程序组件侦听状态更改,然后重新呈现整个组件树。 组件被实现为“纯”的

  • 我们正在热烈讨论如何在React中更新嵌套状态。国家是否应该是不可改变的?优雅地更新状态的最佳实践是什么? 假设你有这样的状态结构: 然后我们要更新乔·多伊的电话号码。我们有几种方法可以做到这一点: 将状态强制更新更改为重新加载 带变异状态的变异状态集合状态 Object.assign,这仍然会改变状态,因为new学生只是对this.state指向的同一对象的新引用 更新不变性助手(https:/

  • 可变状态 数据是不可变的, 但是通过引用实现的状态是可以改变的. Atom Atom 在 Clojure 中可以用于处理事务操作, cljs 由于是单线程, 玩不转. 不过 Atom 还是用于表示单个同步的状态修改, 用法一般是: (def *a (atom 1)) @*a (reset! *a 2) (swap! *a inc) swap! 实际上是一个 Macro, 应对 (reset! *a

  • 我有2个选择国家输入,我想重置默认占位符时,重置一个表单内的所有状态。我使用了2个状态变量来存储国家,我得到了一个重置我的状态的函数,但是选择输入不重置为默认值。它将在最后选定的国家/地区保持选中状态。我将状态重置为空,但无法使其工作。你能帮我一下吗? 这是我的选择组件,如果我在它上使用值选项,它崩溃,我不能改变国家保留在占位符默认消息。 更新 值选项在其中崩溃,因为它需要接收和对象的值和标签像这

  • 我正在使用请求npm包,它只是一个包装在HTTP调用中的promise。我过去对promise有过意见。我如何获得一个promise返回一个值,以便我可以在react中使用它,或者获得一个promise在该promise中设置一个react状态变量?我需要一个API调用的特定数字来设置一个react状态变量。 对于这样的代码... 而且

  • 我一直在阅读React的快速启动文档; 为什么React道具是只读的?