更新记录
0.0.6(2024-11-20) 下载此版本
- fix: 更换
characterLimit
0.0.5(2024-10-27) 下载此版本
- chore: 更新文档
0.0.4(2024-10-27) 下载此版本
- fix: 修复值为null时会显示关闭图标
平台兼容性
Vue2 | Vue3 |
---|---|
√ | √ |
App | 快应用 | 微信小程序 | 支付宝小程序 | 百度小程序 | 字节小程序 | QQ小程序 |
---|---|---|---|---|---|---|
HBuilderX 4.26 app-vue app-uvue | × | √ | × | × | × | × |
钉钉小程序 | 快手小程序 | 飞书小程序 | 京东小程序 |
---|---|---|---|
× | × | × | × |
H5-Safari | Android Browser | 微信浏览器(Android) | QQ浏览器(Android) | Chrome | IE | Edge | Firefox | PC-Safari |
---|---|---|---|---|---|---|---|---|
√ | √ | √ | √ | × | × | × | × | × |
lime-search 搜索
- 用于用户输入搜索信息,并进行页面内容搜索。兼容uniapp/uniappx
- 插件依赖
lime-style
、lime-shared
、lime-icon
、lime-svg这是个收费的插件,如果不需要svg可以在lime-icon里注释掉
安装
在插件市场导入即可,首次导入可能需要重新编译
代码演示
基础使用
v-model
用于控制搜索框中的文字。
<l-search class="search" v-model="value" placeholder="请输入关键字" />
const value = ref('')
事件监听
Search 组件提供了 change
,blur
,clear
,focus
,submit
,action-click
, 通过action
属性设置右侧操作按钮文字
<l-search
v-model="value"
placeholder="请输入关键字"
action="取消"
@change="onChange"
@blur="onBlur"
@clear="onClear"
@focus="onFocus"
@submit="onSubmit"
@action-click="onActionClick">
</l-search>
const value = ref('');
const onChange = (value: string) => {
console.log(`onChange`, value)
}
const onBlur = (value: string) => {
console.log(`onBlur`, value)
}
const onClear = (value: string) => {
console.log(`onClear`, value)
}
const onFocus = (value: string) => {
console.log(`onFocus`, value)
}
const onSubmit = (value: string) => {
console.log(`onSubmit`, value)
}
const onActionClick = () => {
console.log('click')
}
内容居中
通过 center
属性设置搜索框内容的居中。
<l-search class="search" v-model="value" :center="true" placeholder="请输入关键字" />
禁用
通过 disabled
属性设置禁用。
<l-search class="search" v-model="value" :disabled="true" placeholder="请输入关键字" />
形状
通过 shape
属性设置搜索框形状。可选项:square/round
<l-search class="search" v-model="value" shape="round" placeholder="请输入关键字" />
自定义
可通过插槽实现复杂的布局
<l-search class="search" padding="16rpx 5rpx 16rpx 24rpx" v-model="value" shape="round" placeholder="请输入关键字" >
<template #left>
<text style="padding-right: 10px; color: #666">地址</text>
</template>
<template #right-icon>
<l-button type="primary" size="small" shape="round">搜索</l-button>
</template>
</l-search>
查看示例
- 导入后直接使用这个标签查看演示效果
// 代码位于 uni_modules/lime-search/compoents/lime-search
<lime-search />
插件标签
- 默认 l-search 为 component
- 默认 lime-search 为 demo
关于vue2的使用方式
- 插件使用了
composition-api
, 如果你希望在vue2中使用请按官方的教程vue-composition-api配置 - 关键代码是: 在main.js中 在vue2部分加上这一段即可.
// vue2
import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)
API
Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 值 | string | - |
v-model | 值 | string | - |
action | 自定义右侧操作按钮文字 | string | - |
adjustPosition | 键盘弹起时,是否自动上推页面 | string | - |
alwaysEmbed | 强制 input 处于同层状态,默认 focus 时 input 会切到非同层状态 (仅在 iOS 下生效) | string | - |
center | 搜索框内容是否居中 | boolean | - |
clearable | 是否启用清除控件 | boolean | true |
confirmHold | 点击键盘右下角按钮时是否保持键盘不收起 | boolean | false |
disabled | 是否禁用 | boolean | false |
focus | 是否聚焦 | boolean | false |
holdKeyboard | focus时,点击页面的时候不收起键盘 | boolean | false |
confirmType | 设置键盘右下角按钮的文字,仅在type='text'时生效confirmType | string | search |
cursor | 指定 focus 时的光标位置 | number | - |
cursorSpacing | 搜索框聚焦时底部与键盘的距离 | number | 0 |
leftIcon | 左侧图标 | string | 0 |
maxcharacter | 用户最多可以输入的字符个数,一个中文汉字表示两个字符长度。maxcharacter 和 maxlength 二选一使用 |
number | - |
maxlength | 用户最多可以输入的文本长度,一个中文等于一个计数长度。默认为 -1,不限制输入长度。maxcharacter 和 maxlength 二选一使用 |
number | -1 |
placeholder | 占位符 | string | - |
placeholderClass | 指定 placeholder 的样式类 | string | - |
placeholderStyle | 指定 placeholder 的样式 | string | - |
selectionEnd | 光标结束位置,自动聚集时有效,需与 selection-start 搭配使用 | number | - |
selectionStart | 光标起始位置,自动聚集时有效,需与 selection-end 搭配使用 | number | - |
shape | 搜索框形状,可选square\|round |
string | - |
type | 拉起键盘的类型 | string | - |
lStyle | 样式 | string | - |
cursorColor | 光标颜色 | string | - |
padding | 内边距 | string | - |
radius | 圆角 | string | - |
height | 高度 | string | - |
bgColor | 背景色 | string | - |
fontSize | 文本字体大小 | string | - |
textColor | 文本颜色 | string | - |
iconColor | 图标颜色 | string | - |
clearIconColor | 删除图标颜色 | string | - |
Events
事件名 | 说明 | 回调参数 |
---|---|---|
action-click | 点击右侧触发 | - |
change | 输入时触发 | value: string |
blur | 输入框失去焦点时触发 | value: string |
clear | 点击清除按钮后触发 | - |
focus | 输入框获得焦点时触发 | value: string |
submit | 确定搜索时触发 | value: string |
Slots
名称 | 说明 |
---|---|
left | 自定义左侧内容(搜索框外) |
action | 自定义右侧内容(搜索框外 |
left-icon | 自定义左侧图标(搜索框内) |
right-icon | 自定义右侧图标(搜索框内) |
主题定制
样式变量
组件提供了下列 CSS 变量,可用于自定义样式)。uvue app无效。
名称 | 默认值 | 描述 |
---|---|---|
--l-search-bg-color: | $fill-3 | - |
--l-search-text-color: | $text-color-1 | - |
--l-search-font-size: | $font-size-md | - |
--l-search-height: | 80rpx | - |
--l-search-padding: | 16rpx 24rpx | - |
--l-search-placeholder-color: | $text-color-3 | - |
--l-search-icon-color: | $text-color-4 | - |
--l-search-radius: | 99px | - |
--l-search-action-color: | $primary-color | - |
--l-search-clear-icon-color: | $text-color-4 | - |
常见问题
插件包含一下lime-svg为收费插件。如果你不需要svg,可以在lime-icon里注释掉,lime-svg为APP原生插件,收费为1元,源码为5元。如果你需要svg,可以考虑一下购买。
// lime-icon/components/l-icon.uvue 第4行 注释掉即可。
<!-- <l-svg class="l-icon" :class="classes" :style="styles" :color="color" :src="iconUrl" v-else :web="web" @error="imageError" @load="imageload" @click="$emit('click')"></l-svg> -->
打赏
如果你觉得本插件,解决了你的问题,赠人玫瑰,手留余香。