作者 | Bethany Griggs、Michael Dawson译者 | 无明

自称为“命令行接口 React”的 JavaScript 库 Ink 最近发布了第二个主要迭代版本。借助 Ink,开发者可以通过组装 React 组件来构建命令行应用程序,并充分利用他们的 React 知识和 React 生态系统。

Ink 是一个 React 渲染器,可以将 React 组件树转成字符串,然后输出到终端上。Ink 2.0 可以无缝支持 React 的某些特性,比如 Hooks 或 Context,还可以与 React 生态系统中的其他重要组件(比如 Redux)发生交互。

官方文档提供了如下的示例:

import React, {Component} from 'react';

终端上的输出:

Ink 2.0 提供了 7 个内置的组件。还有其他 10 个第三方组件也可用于开发终端应用程序,以及 14 个组件正在迁移到 Ink 2.0。这些可重用的组件提供了常用的终端用户界面布局和行文(文本输入框、进度条、微调器、确认输入框、滚动条、自动完成、文本动画、图像显示等)。这些组件也解决了其他一些较受关注的问题,比如链接、路由、动画和颜色。

Ink 2.0 使用了 Yoga,一个实现了 Flexbox 的跨平台布局引擎。所以,每个元素就是一个 Flexbox 容器,可以使用相关的 Flexbox 参数(flexShrink、flexGrow、flexDirection 等等)。内置组件 Box 可用于配置布局。下列的组件:

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

将在终端上显示:

可以使用 ink-testing-library 来测试 Ink 组件。这个库的灵感来自 react-testing-library,一个可替代 Jest 来测试 React 组件的框架。可以像下面这样测试一个计数器应用程序:

import React from 'react';

终端应用程序和命令行应用程序之间有一个区别。终端应用程序具有图形化用户界面,可能带有复杂的导航和输入功能。

基于 blessed 终端界面库构建的 React-blessed 可以让应用程序变成下面这样:

Ink 旨在简化命令行应用程序的界面,提供更简单的输入功能:

Ink 采用了 MIT 开源协议。开发者可以通过其 GitHub 主页贡献代码:

https://github.com/vadimdemedes/ink

查看英文原文:

https://www.infoq.com/news/2019/04/ink-react-command-line-app

react 让滚动条一直在下面_Ink 2.0 发布:命令行应用程序的 React相关推荐

  1. 2020前端最新面试题总结(js、html、小程序、React、ES6、Vue、算法、全栈热门视频资源)(3年前端菜鸟级开发师含泪总结)

    2020前端最新面试题总结(js.html.小程序.React.ES6.Vue.算法.全栈热门视频资源) 文档描述 (今年确实挺难 3年前端菜鸟级开发师含泪总结 希望能帮助大家) 本文是关注微信小程序 ...

  2. 前端面试题总结(js、html、小程序、React、ES6、Vue、全栈)

    前端面试题总结(js.html.小程序.React.ES6.Vue.全栈) 文档描述 本文是关注微信小程序的开发和面试问题, 由基础到困难循序渐进, 适合面试和开发小程序. 并有热点框架(vue re ...

  3. react中使用构建缓存_通过构建海滩度假胜地网站,了解如何使用React,Contentful和Netlify...

    react中使用构建缓存 In this full course from John Smilga you will learn React by building a beach resort we ...

  4. React Native 0.59.0 发布,使用 React 编写原生应用

    React Native 0.59.0 发布了.React Native 使开发者只使用 JavaScript 也能编写原生移动应用. 新版更新亮点: React Hooks React Native ...

  5. react native命令行全局安装

    命令行npm install -g react-native-cli rn的架构图: C:\MyApp\node-v10.16.3-win-x64\node_modules\react-native- ...

  6. react部署在node_如何在没有命令行的情况下在3分钟内将React + Node应用程序部署到Heroku

    react部署在node In this tutorial we will be doing a basic React + Node app deploy to Heroku. 在本教程中,我们将进 ...

  7. [react] props.children.map和js的map有什么区别?为什么优先选择react的?

    [react] props.children.map和js的map有什么区别?为什么优先选择react的? React.Children.map 能够处理未知数据类型,即使 React.childre ...

  8. React学习,Babel ES6兼容运行使用的命令行整理

    测试项目为,一个js文件引用其他ES6编写的文件,最终网页中引用打包好的最终js文件 注意:需要安装Node.js,没有的话,需要搜索安装 1 Browserify //在终端中输入如下命令,可以通过 ...

  9. 如何命令行结束react程序_想要成为前端Star 吗?一首歌时间将React / Vue 应用Docker 化...

    前言 以前一直有疑问困扰着我:人人都在吹的Docker容器化,与前端有何关系? 然而在近两年的编程生涯,在每一次产品迭代中,渐渐体会到了容器化其魅力所在. 应用部署从刀耕火种,到DevOps崛起,原来 ...

最新文章

  1. java与ios的区别_好奇?Android与iOS究竟有什么区别?终于知道了!
  2. ITK:使用Canny边缘检测过滤器检测边缘
  3. python3mysql包_python3读取MySQL-Front的MYSQL密码
  4. 基于UDP的组播网络程序
  5. 环网工业交换机ERPS技术解析
  6. 深入css布局 (1) — 盒模型 元素分类
  7. [react] react是什么?它的主要特点是什么?
  8. gezabo变黑闪退,报错[gazebo_gui-2] process has died
  9. 校园兼职跑腿源码+网页版(非小程序)
  10. Confluence 6 管理协同编辑 - 最大编辑者的限制
  11. 阄阄乐-IOS抓阄抽签工具
  12. 苹果保修期查询_苹果手机维修为什么这么贵?
  13. java fillrect_Java graphics2D fillRect无法使用半透明颜色正常...
  14. 美团智能支付背后的前端工程师
  15. 前端三件套之css笔记
  16. 研发管理01:项目管理(PM) 与 Scrum Master (SM)
  17. 推荐一个学习SQL的好网站
  18. 夜神安卓7导入charles证书
  19. 本地ping不上虚拟机地址? 只需简单几步即可
  20. c# json 按照key顺序排序。。。

热门文章

  1. mysql如何导入JSON数据-navigate管理数据库,导入JSON数据不显示。需要整体关闭再打开!
  2. 网络工程师_记录的一些真题_2017下半年上午
  3. 基于OpenCV的透视图转化为不同平面
  4. 基础知识——类和文件和异常(六)
  5. 微信小程序如何使用iconfont阿里巴巴图标库?
  6. Django+Bootstrap+Mysql 搭建个人博客(五)
  7. whlie and for
  8. 我国企业大数据的发展与应用总览
  9. [分享]iOS开发-UI篇:CAlayer层的属性
  10. Scrum Master的成功定义是什么?