internachi/blade-alpine-instantsearch
最新稳定版本:0.6.0
Composer 安装命令:
composer require internachi/blade-alpine-instantsearch
包简介
Algolia instant search as Blade/Alpine.js components
README 文档
README
This is a work-in-progress package to allow you to implement Algolia InstantSearch entirely with Laravel Blade components.
Usage
Components
Not all components are implemented, and most of the UI is likely to change before a 1.0 release. The current implementation is a proof-of-concept that we'll be refining in some internal tools over the coming months. All components should work in renderless mode, but UI has only been implemented for the following:
<x-instantsearch>— the wrapper that provides configuration and context<x-instantsearch::search-box>— the search input<x-instantsearch::hits>— rendering search results/hits<x-instantsearch::hit>— rendering a specific attribute in a hit<x-instantsearch::highlight>— rendering a specific attribute highlighted based on input<x-instantsearch::numeric-menu>— Filtering by numeric values (like price/votes/etc)<x-instantsearch::refinement-list>— Filtering by tags/categories/etc<x-instantsearch::pagination>— Paginating results
All components map as closely to InstantSearch.js as possible (in fact, much of the API was autogenerated from the JS documentation). For now, it's probably best to refer to the JS docs for configuration reference.
Alpine
Under the hood, all components use Alpine.js v3 to
handle state and rendering. For example, the search box component uses Alpine's
x-model to track the query value,
and x-on:input to pass that value to the
instantsearch refine() method. The looks something like:
<input type="text" placeholder="Search" x-model="query" @input="refine(query)" />
Under the hood, this package injects itself into the Blade component's attributes to connect to the instantsearch instance—everything else is just Alpine and Blade.
Using Existing Templates
All components come pre-bundled with templates that will work with any project that uses Tailwind CSS. If you want to tweak a specific template you can publish your own version with:
php artisan vendor:publish --tag=instantsearch
Renderless Mode
If you prefer more fine-grained control over each component, you can enable renderless
mode which simply wires up your component state but leaves the UI entirely in your hands.
You can either do this on a component-by-component basis by using a renderless attribute
on the component:
<x-instantsearch-refinement-list attribute="brand" renderless> <!-- Do whatever you want here --> </x-instantsearch-refinement-list>
Or you can publish the package config file with:
php artisan vendor:publish --tag=instantsearch
And then enable the renderless config option which will cause all components to work
in this mode by default.
统计信息
- 总下载量: 36.66k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 19
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-01-21