LittleSound/slimeform

将 nbsp; 设为默认配置

Allen-1998 opened this issue · 6 comments

和功能无关,只是一个小建议:

看到文档中推荐使用 nbsp; 来防止内容为空时高度塌陷,个人感觉用 min-height 会不会好一些

image

感谢你的建议。这是可以的,但是因为每个字号都需要单独设置 min-height 不是很方便。如果你希望通过设置高度的方式解决或许你可以使用 em 单位,它是和字体大小直接相关的单位,你可能需要保证 min-heightline-height 相同。

但是使用   你不需要过多考虑这些问题,这是我的看法。
可以详细的说一下相比之下你为什么觉得 min-height 更好。

前端有一条规范是能用 css 来处理的,尽量不要使用 js 来处理,性能上 css 来处理也会优于 js(虽然这个差异可能几乎感知不到,哈哈哈),还有就是个人代码习惯原因吧,不是很喜欢用  ,当然你对使用  优点的解释也很有道理。

或许可以另一种方式?当 !isError 时将 message 的值设置为  ,我的意思是这个逻辑包含在源码中而不是需要用户设置,毕竟每次都要 ||  也挺麻烦的

因为   只是一个建议,我担心包括在源码中会导致开发者失去自己选择的可能性;虽然它可能会比较手动挡。
或许你可以提交一个 pr 来完善这部分文档?

默认逻辑为当 !isError 时将 message 的值设置为  ,如果用户不需要占位的话也可以通过v-if来取消占位,你觉得这个主意怎么样?
主要是实际需求的应用场景里应该都会需要占位,如果我来使用的话可能会希望不需要重复的手动去设置,如果没有问题的话我很乐意为此贡献一个pr并完善相关文档。

我有一个想法,或许我们可以在初始化时添加一个配置项,它类似于这样:

<script setup>
import { useForm } from 'slimeform'

const { form, status } = useForm({
  form: () => ({ /* ... */ }),
  rule: { /* ... */ },
  /* 这里 */
  defaultMessage: '&nbsp;',
})
</script>

当字段没有错误时就在 status[key].message 中显示 defaultMessage,或许这个功能将来还可以细化的给每个字段独立设置。

好主意,我认为它是可行且合理的。
白天我需要做一些日常的工作,晚上我会试着来做一下,等我pr。