React 快速入门

    将边打字边搜索体验集成到你的 React 应用中

    1. 创建一个 React 应用

    使用 Vite 模板创建你的 React 应用

    npm create vite@latest my-app -- --template react
    

    2. 安装搜索组件库

    转到 React 应用程序,然后安装 react-instantsearch@meilisearch/instant-meilisearchinstantsearch.css

    npm install react-instantsearch @meilisearch/instant-meilisearch instantsearch.css
    

    3. 初始化搜索客户端

    使用以下 URL 和 API 密钥来连接到包含来自 Steam 视频游戏的数据的 Meilisearch 实例。

    import React from 'react';
    import { instantMeiliSearch } from '@meilisearch/instant-meilisearch';
    
    const { searchClient } = instantMeiliSearch(
      'https://ms-adf78ae33284-106.lon.meilisearch.io',
      'a63da4928426f12639e19d62886f621130f3fa9ff3c7534c5d179f0f51c4f303'
    );
    

    4. 添加 InstantSearch 提供程序

    <InstantSearch> 是 InstantSearch 库的根提供程序组件。它需要两个属性:searchClient索引名称

    import React from 'react';
    import { InstantSearch } from 'react-instantsearch';
    import { instantMeiliSearch } from '@meilisearch/instant-meilisearch';
    
    const { searchClient } = instantMeiliSearch(
      'https://ms-adf78ae33284-106.lon.meilisearch.io',
      'a63da4928426f12639e19d62886f621130f3fa9ff3c7534c5d179f0f51c4f303'
    );
    
    const App = () => (
      <InstantSearch
        indexName="steam-videogames"
        searchClient={searchClient}
      >
      </InstantSearch>
    );
    
    export default App
    

    5. 添加搜索栏并列出搜索结果

    InstantSearch 包装组件内添加 SearchBoxInfiniteHits 组件。Hits 组件通过 hitComponent 属性接受自定义 Hit 组件,该属性允许自定义渲染每个搜索结果的方式。

    导入 CSS 库以设定搜索组件的样式。

    import React from 'react';
    import { InstantSearch, SearchBox, InfiniteHits } from 'react-instantsearch';
    import { instantMeiliSearch } from '@meilisearch/instant-meilisearch';
    import 'instantsearch.css/themes/satellite.css';
    
    const { searchClient } = instantMeiliSearch(
      'https://ms-adf78ae33284-106.lon.meilisearch.io',
      'a63da4928426f12639e19d62886f621130f3fa9ff3c7534c5d179f0f51c4f303'
    );
    
    const App = () => (
      <InstantSearch
        indexName="steam-videogames"
        searchClient={searchClient}
      >
        <SearchBox />
        <InfiniteHits hitComponent={Hit} />
      </InstantSearch>
    );
    
    const Hit = ({ hit }) => (
      <article key={hit.id}>
        <img src={hit.image} alt={hit.name} />
        <h1>{hit.name}</h1>
        <p>${hit.description}</p>
      </article>
    );
    export default App
    
    提示

    使用以下 CSS 类来向组件添加自定义样式:.ais-InstantSearch.ais-SearchBox.ais-InfiniteHits-list.ais-InfiniteHits-item

    6. 启动应用程序并在键入时搜索

    通过运行启动应用程序

    npm run dev
    

    现在,打开浏览器并导航到 React 应用程序 URL(例如 localhost:3000),然后开始搜索。

    React app search UI with a search bar at the top and search results for a few video games

    遇到问题?在我们的 实时演示 中查看操作中的代码!

    后续步骤

    想要搜索自己的数据?在 Meilisearch Dashboard 中 创建一个项目。查看我们的 快速入门指南,获取分步说明。