npm 包 inquirer-autocomplete-prompt 使用教程**

阅读时长 4 分钟读完

在前端开发中,经常需要与用户交互获取输入信息。而 Inquirer.js 是一个功能强大的命令行交互工具,它提供多种交互方式,包括选择题、输入框、确认框等等。但是,在处理大量选项时,使用纯文本输入框会变得比较麻烦。这时就可以使用 inquirer-autocomplete-prompt 这个 npm 包,它提供了自动完成输入的功能。

安装

使用 npm 安装:

示例

下面是一个简单示例,演示如何使用 inquirer-autocomplete-prompt 实现输入城市名自动补全:

-- -------------------- ---- -------
----- -------- - --------------------
----- ------------------ - ----------------------------------------

-- ----
----- ------ - -
  -----
  -----
  -----
  -----
  -----
  -----
  -----
  -----
  -----
  ----
--

-- --------
-------- --------------------- ------ -
  ----- - ----- -- ---
  ------ --- ------------------------- -
    ----- -------------- - ------------------ -- ----------------------
    ------------------------
  ---
-

-- --------
--------------------------------------- --------------------

-- ----
----- --------- - -
  -
    ----- ---------------
    ----- -------
    -------- --------------
    ------- ------------
  -
--

-- ----
--------------------------------------- -- -
  ---------------------------------------
---

在上面的示例中,我们定义了一个城市列表,然后通过 searchCities 函数来过滤出包含用户输入内容的城市信息。接着,注册自动完成提示并创建一个使用该提示的问题。最后,通过调用 inquirer.prompt 来启动询问过程。

深入探讨

定义问题

在上面的示例中,我们通过以下代码定义了一个选择题:

其中,type 属性指定了类型为 autocompletename 属性指定了问题的名称,message 属性则是问题的描述信息。而 source 属性则是用于提供自动完成提示选项的回调函数。需要注意的是,该回调函数必须返回一个 Promise 对象,并且在 Promise 的 resolve 回调函数中返回一个字符串数组,表示可供选择的选项列表。

自动完成回调函数

自动完成回调函数将由 Inquirer.js 在用户输入时调用,并获得两个参数:答案对象 answers 和用户当前输入的值 input。自动完成回调函数需要根据输入值筛选出合适的候选项列表,并将其以 Promise 对象的形式返回。

在示例中,我们通过以下代码定义了一个自动完成回调函数:

该回调函数首先判断 input 是否为空,如果是,则返回全部城市列表;否则,使用 Array.prototype.filter() 方法来过滤出包含 input 值的城市列表,并将其以 Promise 对象的形式返回。

注册自动完成提示

在使用 inquirer-autocomplete-prompt 包时,需要先注册自动完成提示:

如上所示,我们使用 inquirer.registerPrompt 方法将类型为

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/54051

纠错
反馈