经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
vue中el-autocomplete与el-select的异同
来源:jb51  时间:2022/5/30 9:34:04  对本文有异议

前言

最近项目里面需要使用到下拉框的远程搜索,我这边使用的是el-select,其实查看文档我们可以得知,还可以使用el-autocomplete来实现远程搜索。

那么它们具体有何异同呢?今天我们来看看。

异同

el-autocomplete

el-autocomplete是使用fetch-suggestions方法实现,当输入的时候,会调用我们提供的方法,传入的参数是输入的value,以及callback。

我们要把请求到的下拉列表通过callback返回(列表的每一项以key为value的形式传,也可以通过value-key换成其它key)。

代码如下:

  1. <el-autocomplete
  2. v-model="value"
  3. :fetch-suggestions="querySearchAsync"
  4. placeholder="请输入内容"
  5. ></el-autocomplete>
  6. export default {
  7. data () {
  8. return {
  9. value: ''
  10. }
  11. },
  12. methods: {
  13. querySearchAsync (queryString, cb) {
  14. setTimeout(() => {
  15. cb([{value: '答案cp3'}])
  16. }, 200)
  17. }
  18. }

可以看到el-autocomplete实时输入的时候,value也是实时变化的,并且,你选中选项,再次拉起选项的时候,不会有选中的效果。

所以el-autocomplete可以理解为输入建议的组件。

el-select

el-select的远程搜索是通过remote-method来实现。当你输入的时候,会调用remote-method对应的方法来实现。参数是传入当前输入的value值。

然后我们请求后,把el-select的option赋值就可以了。

代码如下:

  1. <el-select
  2. v-model="value"
  3. filterable
  4. remote
  5. reserve-keyword
  6. placeholder="请输入关键词"
  7. :remote-method="remoteMethod"
  8. :loading="reqLoading"
  9. >
  10. <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
  11. </el-select>
  12. export default {
  13. data () {
  14. return {
  15. value: '',
  16. reqLoading: false,
  17. options: []
  18. }
  19. },
  20. methods: {
  21. remoteMethod (query) {
  22. if (query !== '') {
  23. this.reqLoading = true
  24. setTimeout(() => {
  25. this.reqLoading = false
  26. this.options = [{label: '答案cp3',value: '答案cp3'}]
  27. }, 200)
  28. } else {
  29. this.options = []
  30. }
  31. }
  32. }

el-select输入的时候value不会实时变化,而是你要选择下面的option才会变化。

然后它选中了,下次打开会有选中的效果。

总结

  • el-autocomplete主要是针对输入建议,value会实时刷新,选中不会有选中效果。
  • el-select value不会实时刷新,选中才会更新value,并且选中会有选中效果。

到此这篇关于vue中el-autocomplete与el-select的异同的文章就介绍到这了,更多相关el-autocomplete与el-select内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号