当前位置:首页 > React

如何使用ink react

2026-03-30 19:54:11React

安装 Ink React

确保系统已安装 Node.js(建议版本 12 或更高)。通过 npm 或 yarn 安装 inkreact 依赖包:

npm install ink react

yarn add ink react

创建基础组件

Ink 允许使用 React 语法编写命令行界面。创建一个简单的组件文件(如 cli.js):

import React from 'react';
import { render, Text } from 'ink';

const App = () => <Text color="green">Hello, Ink!</Text>;

render(<App />);

运行组件

通过 Node.js 执行组件文件:

node cli.js

终端将显示绿色文本 "Hello, Ink!"。

添加交互功能

Ink 支持用户输入和动态更新。使用 useStateTextInput 组件实现输入交互:

如何使用ink react

import React, { useState } from 'react';
import { render, Text, TextInput } from 'ink';

const App = () => {
  const [input, setInput] = useState('');
  return (
    <>
      <Text>Enter your name: </Text>
      <TextInput value={input} onChange={setInput} />
      <Text>You typed: {input}</Text>
    </>
  );
};

render(<App />);

处理命令行参数

通过 process.argv 或第三方库(如 yargs)获取命令行参数:

import React from 'react';
import { render, Text } from 'ink';

const App = () => <Text>Args: {process.argv.join(' ')}</Text>;
render(<App />);

使用布局组件

Ink 提供 BoxNewline 等布局组件控制输出格式:

import { render, Box, Text, Newline } from 'ink';

const App = () => (
  <Box flexDirection="column">
    <Text>First line</Text>
    <Newline />
    <Text color="yellow">Second line</Text>
  </Box>
);

render(<App />);

生命周期管理

通过 useEffect 处理组件生命周期,如定时更新:

如何使用ink react

import React, { useState, useEffect } from 'react';
import { render, Text } from 'ink';

const App = () => {
  const [count, setCount] = useState(0);
  useEffect(() => {
    const timer = setInterval(() => setCount(c => c + 1), 1000);
    return () => clearInterval(timer);
  }, []);
  return <Text>Count: {count}</Text>;
};

render(<App />);

错误边界

使用 ErrorBoundary 捕获子组件错误:

import { render, ErrorBoundary, Text } from 'ink';

const BuggyComponent = () => { throw new Error('Crash!'); };

const App = () => (
  <ErrorBoundary fallback={({ error }) => <Text color="red">{error.message}</Text>}>
    <BuggyComponent />
  </ErrorBoundary>
);

render(<App />);

测试组件

Ink 支持通过 ink-testing-library 进行单元测试:

npm install --save-dev ink-testing-library

测试示例:

import { render } from 'ink-testing-library';
import { App } from './cli';

test('displays greeting', () => {
  const { lastFrame } = render(<App />);
  expect(lastFrame()).toContain('Hello, Ink!');
});

打包发布

使用 pkgnexe 将应用打包为可执行文件:

npm install -g pkg
pkg cli.js --targets node14-linux-x64

生成的可执行文件可直接运行无需 Node.js 环境。

标签: 如何使用ink
分享给朋友:

相关文章

react如何使用webview

react如何使用webview

使用 React 实现 WebView 的方法 在 React 中,可以通过不同的方式实现 WebView 功能,具体取决于开发环境(如 React Native 或 Web 应用)。以下是常见的实现…

react激光如何使用

react激光如何使用

安装React激光库 在项目中安装React激光库,通常通过npm或yarn完成。确保项目已初始化并具备React环境。 npm install react-laser-beam # 或 yar…

react如何使用link

react如何使用link

使用 Link 组件进行页面导航 在 React 中,Link 是 react-router-dom 提供的组件,用于在单页应用(SPA)中实现客户端路由导航,避免页面刷新。 安装 react-…

react如何使用mobx

react如何使用mobx

使用 MobX 在 React 项目中 在 React 项目中集成 MobX 需要安装必要的依赖包并配置 Store 和组件。以下是详细步骤: 安装依赖 确保项目中已安装 mobx 和 mobx-r…

react redux如何使用

react redux如何使用

安装依赖 确保项目已安装 React 和 Redux 相关库。通过以下命令安装核心依赖: npm install redux react-redux @reduxjs/toolkit 创建 Stor…

react如何使用组件

react如何使用组件

使用组件的基本方法 在React中,组件是构建用户界面的核心单元。组件分为函数组件和类组件两种形式。 函数组件示例 function Greeting(props) { return <…