vue3虚拟滚动+分页加载下拉选择器

虚拟滚动+分页加载下拉选择器

vue3 element-plus el-select的二次封装

属性说明

属性名类型默认值说明
placeholderString请选择默认占位符
clearableBooleanfalse展示清空按钮
modelValueString‘’选择的值
selectPropsObject{label: ‘title’,value: ‘id’}选项别名
httpRequestFunction() => {}数据函数

使用示例

	<virtualizedSelect v-model='selectId' style="width: 100px" :httpRequest="httpRequest" :selectProps="{'label': 'name', 'value': 'id'}" placeholder="状态" clearable></virtualizedSelect>

// setup 形式下
import { ref } from 'vue'
import virtualizedSelect from "@/components/virtualized-select/virtualized-select.vue"
const selectId = ref('')
const httpRequest = async (params)=>{
	let res = await getinfoList(params) //接口
		return {
			data: res.value, 
			total: res.total
		}
}

//也可以注册到全局 页面中直接使用不需要import
// main.ts文件
import App from '@/App.vue'
import virtualizedSelect from "@/components/virtualized-select/virtualized-select.vue"
const app = createApp(App)
app.component('virtualizedSelect', virtualizedSelect)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Element Plus 中的 `el-select` 和 `el-pagination` 组件来实现带有分页下拉选项。 首先,你需要在页面中引入 Element Plus 组件库。然后,在你的组件中,你可以使用 `el-select` 组件来创建下拉选项,同时使用 `el-pagination` 组件来实现分页功能。 以下是一个简单的示例代码,其中 `options` 是下拉选项数据,`pageSize` 是每页显示的选项数量,`currentPage` 是当前页码。 ```vue <template> <div> <el-select v-model="selectedOption" placeholder="请选择"> <el-option v-for="option in displayedOptions" :key="option.value" :label="option.label" :value="option.value"></el-option> </el-select> <el-pagination :page-size="pageSize" :total="options.length" v-model="currentPage"></el-pagination> </div> </template> <script> import { ref, computed } from 'vue'; export default { setup() { const options = [ { label: '选项1', value: 'option1' }, { label: '选项2', value: 'option2' }, { label: '选项3', value: 'option3' }, // ... ]; const selectedOption = ref(''); const currentPage = ref(1); const pageSize = 5; const displayedOptions = computed(() => { const startIndex = (currentPage.value - 1) * pageSize; const endIndex = startIndex + pageSize; return options.slice(startIndex, endIndex); }); return { options, selectedOption, currentPage, pageSize, displayedOptions, }; }, }; </script> ``` 在上述代码中,我们使用 `computed` 函数来计算当前页码显示的选项。根据当前页码和每页显示的选项数量,我们可以计算出应该从哪个索引开始和结束,然后使用 `slice` 方法来获取对应的选项。最后,我们将计算得到的选项数组传递给 `el-select` 组件的 `v-for` 指令来渲染下拉选项。同时,我们使用 `el-pagination` 组件来渲染分页器,并且将 `currentPage` 绑定到组件的 `v-model` 属性中,以便在页面上切换页码时更新当前页码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值