2023-07-14
Vue
0

在我们的业务里,我们通常会二次封装一些高频业务组件。对于封装组件有一个大原则就是我们应该尽量保持原有组件的接口,除了我们需要封装的功能外,我们不应该改变原有组件的接口,即保持原有组件提供的接口如props,events,slots等不变。这里我们对element plus 的input组件做二次封装为例,Vue版本3.3.4 element-plus版本2.3.8

2025-08-16
JavaScript
0

在iframe嵌套的业务中,如果父页面需要向子页面发送消息,通过传统的iframe.contentWindow.postMessage和window.addEventListener('message',(data) => {})的方式,有时候会出现父页面发送了消息,但是子页面没有收到消息的情况,这一般是由于子页面加载并创建message监听的时机出现了延误。在这里我们通过发布订阅的方案来解决它。

2026-02-01
其它
0

在众多AI项目中,打字机效果是很常见的,我们来模拟下这个效果。前端技术采用的是angular,其它技术也类似。

2026-01-30
Vue
0

文本溢出隐藏是常见的需求,如果把需求升级为超出指定的几行隐藏呢,常见的作法是

.ellipsis-container { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 限制文本显示为3行 */ overflow: hidden; }

但是这种css方案有浏览器兼容性问题,火狐不支持。这种时候不得不使用javascript来实现,我们将实现一个Vue组件,需求如下:

  1. 组件接收 title属性或slot内容,表示标题,如果没有则不显示标题。
  2. 组件接收 maxHeight 属性,表示文本最多显示多少行,默认3行,超出则隐藏。
  3. 鼠标悬浮tooltip 提示,鼠标移入时显示全部
  4. 组件接收 ellipsis 属性,表示文本超出时显示的省略号,默认"..."。
  5. 组件接收 showMore 属性(下拉或收起的图标),表示是否显示“显示全部”按钮,默认显示。下拉或收起时要有动画过度。
  6. 适配移动端,手机屏幕宽度小于768px时,隐藏标题。
  7. 兼容主流浏览器,IE9+、Chrome、Firefox、Safari、Opera。
  8. 适配不同的字体,使用不同的font-family,maxHeight不受影响
  9. 使用ts setup 语法
2026-05-09
Angular
0

动态表单在企业级开发中具有很高的价值,不仅可以减少代码量,还可以规范化代码。在Vue体系中,网上有很多这样的组件,但是在angular中相对少很多,这里以@delon/form为例来演示,为它搭建一个表单设计器