@focus-reactive/react-yaml

中文文档
1.1.2发布于 2022/06/23MITTypeScriptCommonJS近 30 天下载 3.7万

有验证和语法突出显示为 React 组件的 Yaml 输入字段

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 特征
  4. API 密码
  5. 贷项

反应- Yaml

有验证和语法突出显示为 React 组件的 Yaml 输入字段

Example

演示

安装

npm i --save @focus-reactive/react-yaml
yarn add @focus-reactive/react-yaml

使用量

您可以通过 JS 对象作为初始值 :

import YamlEditor from '@focus-reactive/react-yaml';

const obj = { foo: 'bar' };
const handleChange = ({ json, text }) => {
  console.log(json);
  // { foo: 'bar' }
};

return <YamlEditor json={obj} onChange={handleChange} />;

也可以用YAML语法通过文字

import YamlEditor from '@focus-reactive/react-yaml';

const text = `
foo: bar
`;

const handleChange = ({ json, text }) => {
  console.log(text);
  // "foo: bar"
};

return <YamlEditor text={text} onChange={handleChange} />;

特征

  • 可操作性( 使用 Codemiror 主题)
  • 语法和出错突出显示
  • 支持使用 YAML 格式的文本或常规 JS 对象
  • 受控和无控模式

API 密码

您可以将以下道具传递给 Yaml Editor

乔森 - YAML 语法编辑器中输出的 JS 对象

文本 - YAML语法中的文本。 注意:如果两者都通过 json 财务报告和审定财务报表 text 道具 - 对 json 将被使用.

说明: 默认情况下, 编辑器将工作于 无控制 模式。 意味着: json 或者说 text 道具不会导致代码更新. 您可以控制这种行为 merge prop,即接受一个函数,您可以通过该函数定义如何更新编辑器中的文本.

主题 - 解码器 样式编辑器的主题 。 譬如说.

import { oneDark } from '@codemirror/theme-one-dark';

变化 - 一个召回启动 值 YAML 代码在编辑器中的更改. 发射时将采用下列参数:

onChange({ json, text });

其中: text 是编辑器中最后一个有效的文本编辑, json 与联合来文相当.

选择 - 文本选择时触发了调用。 发射时将采用下列参数:

onSelect({ selected, from, to });

其中: selected - 是一个选中的文本, from 财务报告和审定财务报表 to - 甄选职位

设置目录 - 当用户在编辑器中移动或设置光标时触发调用。 发射时将采用下列参数:

onSetCursor({ word, from, to });

其中: word - 是一个由白空间分隔的词, from 财务报告和审定财务报表 to - 开始和结束位置

错误 - 任何被召回 估价 编辑器中的代码更改。 发射时将采用下列参数:

onError(errorObject | null);

地点 errorObject 是代表 YAML 语法错误的 Codemirror 错误对象。 注意在编辑器中出现用户固定语法错误后,此功能将随 null。 。 。 .

合并 (可选) - 启动于 json 或者说 text 道具会变. 它可以比较新值和当前值,并返回将出现在编辑器中的结果. 发射时将采用下列参数:

merge({ json, text, currentText });

地点 json - 新的json道具, text 新文本道具,以及 currentText 是当前文本.

它应该用其中的一键返回对象: json 或者说 text 它应包含js值的新文本.

默认返回 currentText

动作 - 允许以必需的形式操纵编辑器

A. 所有行动 ref 道具 之后 编辑器保持不变:

const EditorWithActions = () => {
  const actions = React.useRef(null);

  React.useEffect(() => {
    // Here we have access to imperative actions
    actions.current.replaceValue({ json: { foo: 'updatedValue' } });
  }, []);

  return (
    <div>
      <YamlEditor json={{ foo: 'initValue' }} ref={actions} />
    </div>
  );
};

目前可采取以下行动:

替换值 - 用新值(json或文本)替换整个编辑器内容

replaceValue({ json, text });

贷项

以 QQ 创建至 反应 和开源社区 奥列格·普罗斯库林 时间 焦点反应

2021 (英语)

FocusReactive

版本与发布记录

@focus-reactive/react-yaml 共发布 5 个版本,首次发布于 2021/09/11;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.1.2latest2022/06/234 年前
1.1.12022/06/234 年前
1.1.02022/06/214 年前
1.0.02021/09/235 年前
0.1.02021/09/115 年前

关于 @focus-reactive/react-yaml 的常见问题

@focus-reactive/react-yaml 是什么?

有验证和语法突出显示为 React 组件的 Yaml 输入字段

如何安装 @focus-reactive/react-yaml?

在项目目录运行 npm install @focus-reactive/react-yaml,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(*)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@focus-reactive/react-yaml 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@focus-reactive/react-yaml 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@focus-reactive/react-yaml 可以商用吗?

@focus-reactive/react-yaml 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@focus-reactive/react-yaml 的下载量有多少?

根据 npm 官方下载统计,@focus-reactive/react-yaml 在 2026/10/15 – 2026/11/13 这 30 天内被下载 37,203 次,日均约 1,240 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@focus-reactive/react-yaml 还在维护吗?

最新版本 1.1.2 发布于 2022/06/23(4 年前);至今共发布 5 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/09/11。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。