且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Vue:HeyUI组件TextEllipsis超出文本省略

更新时间:2022-08-22 14:46:30

文档:

安装

npm install heyui

实现的效果

Vue:HeyUI组件TextEllipsis超出文本省略

目录

$ tree
.
├── App.vue
├── Text.vue
├── main.js
└── package.json

package.json

{
  "dependencies": {
    "eslint-plugin-vue": "^7.4.1",
    "heyui": "^1.28.0"
  }
}

main.js

import Vue from "vue";
import App from "./App.vue";
import { install, TextEllipsis } from "heyui";

// 按需加载
Vue.use(install, { components: { TextEllipsis } });

const app = new Vue({
  el: "#app",
  render: (h) => h(App),
});

export default app;

Text.vue

<template>

  <div class="box">
    <TextEllipsis
      :text="text"
      :height="30"
      :isLimitHeight="isLimitHeight"
    >
      <template slot="more">
        <span>...</span>
        <span
          @click="isLimitHeight=false"
          class="link"
        >查看更多</span>
      </template>

      <span
        slot="after"
        class="link"
        v-if="!isLimitHeight"
        @click="isLimitHeight=true"
      >收起</span>
    </TextEllipsis>
  </div>

</template>

<script>
export default {
  name: '',

  props: [],

  data() {
    return {
      text:
        '《华盛顿***灯塔报》几天前报道称,美国国防部官员透露中国近日进行第十次东风-41洲际导弹的试射活动,这次试射中东风-41导弹投射了多个弹头并成功命中中国西部靶场目标。',
      isLimitHeight: true,
    };
  },

  computed: {},

  methods: {},

  created() {},
};
</script>

<style scoped>
.box {
  width: 500px;
  border: 1px solid #0084ff;
}

.link {
  cursor: pointer;
  color: #0084ff;
}
</style>

App.vue

<template>
  <div>
    <TextBox />

    <TextBox style="margin-top:20px;"/>
  </div>
</template>

<script>
import TextBox from './Text.vue';

export default {
  name: '',

  props: [],

  components: {
    TextBox,
  },
};
</script>

<style scoped>
</style>

启动测试服务


$ vue serve

1

源码参考

https://github.com/heyui/heyui/blob/master/src/components/text-ellipsis/textellipsis.vue


参考文档:

TextEllipsis 超出文本省略

深入扩展文本溢出解决方案