Vue 仿百度搜索功能实现代码

阅读时长 5 分钟读完

简介

在前端开发中,实现搜索功能是非常常见的需求。本文将介绍如何使用 Vue 框架实现一个仿百度搜索的功能,并提供示例代码和详细说明。

实现思路

仿百度搜索的功能主要由以下几个部分组成:

  1. 输入框:用户输入搜索关键字。
  2. 搜索建议列表:根据用户输入的关键字显示相应的搜索建议。
  3. 搜索结果列表:根据用户输入的关键字显示相应的搜索结果。

我们可以将整个搜索功能拆分成三个组件:

  1. SearchBox 组件:包含一个输入框和一个按钮,用于接收用户输入的搜索关键字,并触发搜索事件。
  2. SuggestionList 组件:用于显示搜索建议列表。
  3. ResultList 组件:用于显示搜索结果列表。

接下来我们分别来实现这三个组件。

SearchBox 组件

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

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

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

SearchBox 组件包含一个输入框和一个按钮,使用 v-model 指令将用户输入的搜索关键字与 keyword 数据绑定,当用户输入时触发 handleInput 方法,通过 $emit 方法向父组件发送输入事件。当用户点击搜索按钮时触发 handleSearch 方法,通过 $emit 方法向父组件发送搜索事件。

SuggestionList 组件

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

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

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

SuggestionList 组件根据用户输入的关键字显示相应的搜索建议列表。当搜索建议不为空时,通过 v-show 指令控制组件的显示和隐藏。使用 v-for 指令将每个搜索建议渲染到列表中,并为每个搜索建议绑定 click 事件,当用户点击某个搜索建议时触发 handleSelect 方法,通过 $emit 方法向父组件发送选择事件。

ResultList 组件

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

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

- ---------------------------------------------------------- --------
--------------------------------------------------------------------------------
纠错
反馈