• 技术文章 >web前端 >Vue.js

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

    青灯夜游青灯夜游2021-12-21 10:47:43转载186
    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" />

    1.png

    改造后的 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="请输入描述"
    />

    2.png

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

    以上就是Ant Design Vue中如何让Textarea组件有“字数统计”功能的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    上一篇:聊聊Vue3中路由,浅析路由配置方式 下一篇:什么是WeakMap?Vue3响应式源码中为什么用它作为缓存区?

    相关文章推荐

    • 带你简单了解AntDesign Vue中Menu菜单的用法• AntDesign Vue中表格无法编辑怎么办?(记录下解决方法)• Ant Design作者公布版本更新背后的故事!• 如何安装Ant Design Pro?简单入门指南• Ant Design中如何定制动态主题?聊聊实现方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网