Ant Design Vue中如何让Textarea组件有“字数统计”功能

Ant Design Vue中如何让Textarea组件有“字数统计”功能,第1张

Ant Design Vue中如何让Textarea组件有“字数统计”功能 Ant Design Vue 默认的 Textarea 组件是没有字数统计功能的,但有时有需要,下面给大家介绍一下怎么让Textarea组件有“字数统计”功能,希望对大家有所帮助!

推荐一个实用的“字数统计”功能:Ant Design Vue 默认的 Textarea 组件是没有字数统计功能的,但这个功能又是很常见的,所以就做了一个简单的二次封装。其实这个功能很简单,就是在不改变原组件的情况下,右下角加上一个计数文本,用定位处理一下就行。

默认的 textarea

官网地址:https://antdv.com/components/input-cn/

基本使用如下所示:

<a-textarea v-model="desc" placeholder="请输入描述" :auto-size="false" />

改造后的 textarea

$attrsv-model实现原理可查看上一篇文章封装原理解析(https://juejin.cn/post/7003280618473668639#heading-3)

<template>
  <div>
    // 文本框
    <a-textarea
     
      v-bind="$attrs"
      v-model="$attrs.value"
      @change="onChange"
    />
    // 字数统计
    <span v-if="showWordLimit"
      >{{ textLength }}/<template v-if="$attrs.maxLength"
        >{{ $attrs.maxLength }}</template
      ></span
    >
  </div>
</template>

<script>
  export default {
    props: {
      // 是否展示字数统计
      showWordLimit: {
        type: Boolean,
        default: false,
      },
    },
    // v-model处理
    model: {
      prop: "value",
      event: "change",
    },
    computed: {
      // 长度控制
      textLength() {
        return (this.$attrs.value || "").length;
      },
    },
    methods: {
      onChange(e) {
        // v-model 回调函数
        this.$emit("change", e.target.value);
      },
    },
  };
</script>

<style scoped>
  .textarea-wrapper {
    position: relative;
    display: block;

    .m-textarea {
      padding: 8px 12px;
      height: 100%;
    }

    .m-count {
      color: #808080;
      background: #fff;
      position: absolute;
      font-size: 12px;
      bottom: 8px;
      right: 12px;
    }
  }
</style>

使用也很简单,和正常的 textarea 一样就行。如果要开启字数统计,showWordLimitmaxLength都要配置才行。

<m-textarea
  v-model="desc"
  :showWordLimit="true"
  :maxLength="20"
  :autoSize="false"
  placeholder="请输入描述"
/>

更多编程相关知识,请访问:编程视频!!

以上就是Ant Design Vue中如何让Textarea组件有“字数统计”功能的详细内容,

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/696618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-22
下一篇 2022-04-22

发表评论

登录后才能评论

评论列表(0条)

保存