上一篇
场景引入:
凌晨2点,你正在疯狂敲代码,突然发现一个按钮组件在10个页面里样式各不相同,复制粘贴改样式?🤯 太low了!这时你猛地拍桌——"该用组件参数化了!"
<script setup> // �️ 基础类型定义 const props = defineProps({ String, // 字符串类型 count: { // 带校验的复杂类型 type: Number, default: 0, validator: (v) => v >= 0 }, isActive: { // 布尔类型技巧 type: Boolean, default: false } }) </script>
使用场景:
避坑指南:
() => ({})
函数返回 <template> <!-- 像穿搭一样组合参数 --> <SmartButton :size="isMobile ? 'small' : 'large'" variant="danger" @click="handleNuclearLaunch" /> </template>
<!-- 组件内部 --> <slot name="footer" :data="processedData"></slot> <!-- 使用时 --> <template #footer="{ data }"> <div>👻 动态内容:{{ data.errorCount }}个错误</div> </template>
参数类型 | 示例 | 说明 |
---|---|---|
行为参数 | @submit |
控制组件事件 |
样式参数 | theme="dark" |
外观样式控制 |
状态参数 | loading |
组件内部状态控制 |
/** * 超级按钮 - 参数说明 * @param {'sm'|'md'|'lg'} size - 控制按钮大小 * @param {Array} icons - 图标配置数组 */ defineProps({...})
文档工具推荐:
<script setup> defineProps({ // 🎨 设计系统标准参数 variant: { type: String, default: 'primary', validator: (v) => ['primary', 'danger', 'ghost'].includes(v) }, // 🤖 智能适应参数 autoSize: { type: Boolean, default: true } }) // 根据参数计算样式 const buttonClass = computed(() => ({ 'btn--danger': variant === 'danger', 'btn--adaptive': autoSize && window.innerWidth < 768 })) </script>
参数组合效果:
variant="danger"
→ 红色警示按钮 autoSize + mobile端
→ 自动变成紧凑布局 💡 好的组件像乐高积木,参数就是那些凸起和凹槽——既要严丝合缝,又要灵活组合!
(本文技术要点参考Vue RFC文档及Ant Design设计规范,2025年7月版本)
本文由 妫安萱 于2025-07-31发表在【云服务器提供商】,文中图片由(妫安萱)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/496758.html
发表评论