ElementUI的自定义模板

前言

ElementUI对于初学小白来说可能还有很多不太友好的地方,简单来说就是没有那么通俗易懂,作为一个萌新今天记录一下学习过程中的一些经验。主题为ElementUI的Input自定义模板


一、ElementUI的Input重要属性

示例:

二、使用步骤

1.上实例(转自Element官网)

代码如下(示例):

<el-autocomplete
  popper-class="my-autocomplete"
  v-model="state"
  :fetch-suggestions="querySearch"
  placeholder="请输入内容"
  @select="handleSelect">
  <i
    class="el-icon-edit el-input__icon"
    slot="suffix"
    @click="handleIconClick">
  </i>
  <template slot-scope="{ item }">
    <div class="name">{{ item.value }}</div>
    <span class="addr">{{ item.address }}</span>
  </template>
</el-autocomplete>

<style>
.my-autocomplete {
  li {
    line-height: normal;
    padding: 7px;

    .name {
      text-overflow: ellipsis;
      overflow: hidden;
    }
    .addr {
      font-size: 12px;
      color: #b4b4b4;
    }

    .highlighted .addr {
      color: #ddd;
    }
  }
}
</style>

<script>
  export default {
    data() {
      return {
        restaurants: [],
        state: ''
      };
    },
    methods: {
      querySearch(queryString, cb) {
        var restaurants = this.restaurants;
        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
        // 调用 callback 返回建议列表的数据
        cb(results);
      },
      createFilter(queryString) {
        return (restaurant) => {
          return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
        };
      },
      loadAll() {
        return [
          { "value": "三全鲜食(北新泾店)", "address": "长宁区新渔路144号" },
          { "value": "Hot honey 首尔炸鸡(仙霞路)", "address": "上海市长宁区淞虹路661号" },
          { "value": "新旺角茶餐厅", "address": "上海市普陀区真北路988号创邑金沙谷6号楼113" },
          { "value": "泷千家(天山西路店)", "address": "天山西路438号" },
          { "value": "胖仙女纸杯蛋糕(上海凌空店)", "address": "上海市长宁区金钟路968号1幢18号楼一层商铺18-101" },
          { "value": "贡茶", "address": "上海市长宁区金钟路633号" },
          { "value": "豪大大香鸡排超级奶爸", "address": "上海市嘉定区曹安公路曹安路1685号" },
          { "value": "茶芝兰(奶茶,手抓饼)", "address": "上海市普陀区同普路1435号" }];
      },
      handleSelect(item) {
        console.log(item);
      },
      handleIconClick(ev) {
        console.log(ev);
      }
    },
    mounted() {
      this.restaurants = this.loadAll();
    }
  }
</script>
效果截图:![在这里插入图片描述](https://img-blog.csdnimg.cn/10fc58030013461b837e4b179808f41b.png#pic_center)

2.介绍几个重要参数方法

  1. autocomplete :是一个可带输入建议的输入框组件,fetch-suggestions 是一个返回输入建议的方法属性,如 querySearch(queryString, cb),在该方法中你可以在你的输入建议数据准备好时通过 cb(data) 返回到 autocomplete 组件中。queryString为你输入到输入框的字符串,该方法在文本框输入字符时立即触发。
  2. 使用scoped slot自定义输入建议的模板。该 scope 的参数为item,表示当前输入建议对象。即为上面的cb(data)返回的数据。
  3. @select方法为选中给出的匹配项点击时触发的事件

3.基于以上的介绍,做一个带提示的搜索输入框

  1. 重写loadAll方法
loadAll(){
	request.get("/findAll"//基于axios的请求调用,
            ).then(res => {
            this.restaurants = res.data})
}
  1. 页面加载时挂载
	mounted() {
      this.loadAll();
    }
  1. 搜索时提示
 querySearch(queryString, cb) {
        var restaurants = this.restaurants;
        var results = queryString ? restaurants.filter(this.createFilter(queryString)) : "";
        // 调用 callback 返回建议列表的数据
        cb(results);
      },
      createFilter(queryString) {
        return (restaurant) => {
          return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
        };
      },

总结

本文简单介绍了一下ElementUI的Input自定义模板的使用,做分享交流之用,水平有限,如有不当,请及时私信联系我!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: elementui自定义表格可以通过使用element-ui提供的组件和属性来实现。在你提供的引用中,可以看到一些element-ui的组件和属性的使用示例。 例如,你可以使用el-form-item组件来创建一个表单项,通过设置label和prop属性来指定标签和数据绑定的字段。\[1\] 另外,你可以使用el-table-column组件来定义表格的列,通过设置prop属性来指定数据绑定的字段。在模板中,你可以使用条件判断来决定是否显示表单元素或者默认展示文字。\[3\] 此外,你还可以使用el-input组件来创建一个输入框,通过v-model指令来实现数据的双向绑定。\[3\] 在实现自定义表格的过程中,你还可以使用一些element-ui提供的方法和事件来实现一些特定的功能。例如,你可以使用$refs来获取表格的引用,然后使用clearSelection方法来清除表格的选中状态,使用toggleRowSelection方法来切换行的选中状态。\[2\] 总之,element-ui提供了丰富的组件和属性,可以帮助你实现自定义的表格功能。你可以根据具体的需求,结合这些组件和属性来创建你想要的表格样式和功能。 #### 引用[.reference_title] - *1* *2* *3* [elementui 表格中单元格自定义功能](https://blog.csdn.net/qq_60035188/article/details/124899254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值