Props
全部组件都支持 props 属性。为什么要干这事呢,因为小程序不支持 v-bind="props" 。
template
<c-text :props="{ color: 'primary', size: 'xl', text: 'text1' }" />
<c-icon :props="{ color: 'primary', size: 'xl', name: 'home-smile-2-line' }" />
props 有 config.props 、 component.props 和 component.props.props
优先级: component.props > component.props.props > config.props
template
<c-text text="default text" />
// size="m"
<c-text size="l" text="size: l" />
// size="l"
<c-text :props="{ size: 'xl' }" text="size: xl" />
// size="xl"
<c-text :props="{ size: 'xl' }" size="l" text="size: l" />
// size="l"
数组类型合并
template
<c-text :props="{ cClass: 'my-text-0' }" c-class="my-text-1" text="text" />
// class="c-text my-text-1" 不会合并,因为都字符串
<c-text :props="{ cClass: ['my-text-0'] }" c-class="my-text-1" text="text" />
// class="c-text my-text-0 my-text-1" 会合并,有一个是数组
Config 使用
全部组件都支持。下面例子是 CText 组件使用说明,其它组件使用方法类似。
设置 config.props
ts
import { setTextConfigs } from '@/uni_modules/cfg-design'
setTextConfigs({
default: { ... }, // 默认配置
myText1: { ... }, // 自定义配置
myText2: { ... }, // 自定义配置
})
查看 config.props
ts
import { useTextConfigs } from '@/uni_modules/cfg-design'
const textConfigs = useTextConfigs()
console.log(textConfigs.value)
使用 config.props
template
<c-text c="myText1" text="text1" />
<c-text c="myText2" text="text1" />