【发布时间】:2020-10-02 07:11:54
【问题描述】:
row.vue
<script>
export default {
name: "Row",
data() {
return {
app: [
"row",
"row-test",
"flex-center"
]
}
},
template: `
<div :class="$module[app]"><slot></slot></div>
`
}
</script>
row.scss
.row {
color: red;
}
.row-test {
color: green;
}
.flex-center {
align-items: center;
justify-content: center;
}
App.vue
<template>
<div id="app">
<row app="row-test flex-center">my row</row>
<router-view />
</div>
</template>
vue.config.js
css: {
requireModuleExtension: true,
loaderOptions: {
css: {
modules: {
localIdentName: 'hex-[HASH:HEX:3]'
}
}
},
modules: true
}
我想使用 app 属性声明我的属性,它们的编写方式与普通类类似。然后我希望row.vue中有一个数组,它将只添加我在其中定义的值并使用CSS模块将它们转换为CSS(类是随机生成的)
我明白了
<div app="row-test flex-center">my row</div>
预期结果
<div class="hex-g3D hex-f41">my row</div>
【问题讨论】:
-
在
Row组件中app被声明为数据属性,在App.vue中作为prop 传递
标签: javascript vue.js sass vuejs2 vue-component