伙计们!今天咱们不聊高深的Vuex、不扯复杂的路由守卫,我们来聊点能让你的项目瞬间“颜值在线”、让你开发效率直接起飞的基础神器——Class 与 Style 绑定。
你是不是曾经这样写过代码?
<div class="static-class {
{ dynamicClass }}">我是一个div</div>
或者在JS里疯狂拼接字符串,就为了一个动态样式?
let style = `color: ${textColor}; font-size: ${fontSize}px;`;
Stop!快住手!在Vue的世界里,这么写简直像是在用智能洗衣机当搓衣板用,太浪费啦!Vue给我们准备了两把“样式瑞士军刀”,专门用来优雅地解决这类问题。
第一把刀:Class绑定——给元素穿“智能衣服”
想象一下,你的元素就是一个模特,Class就是一件件衣服。静态Class是它的基础款内衣,而动态绑定的Class,则是可以根据天气(数据状态)自动更换的外套、帽子、墨镜。
Vue给这件“智能衣服”提供了两种神奇的穿搭法则:
1. 对象语法:最常用,最智能的穿搭法则
它的核心思想是:一个Class名,对应一个布尔值。为真,就穿上;为假,就脱掉。 语法长这样::class="{ className: boolean }"
来看个活生生的例子,一个会“变脸”的按钮:
<template>
<div>
<!-- 这个按钮的心情由 `isHappy` 决定 -->
<button
:class="{ 'happy-btn': isHappy, 'sad-btn': !isHappy }"
@click="isHappy = !isHappy"
>
点我切换心情:{
{ isHappy ? '开心' : '难过' }}
</button>
</div>
</template>
<script>
export default {
data() {
return {
isHappy: true
}
}
}
</script>
<style scoped>
.happy-btn {
background-color: #4CAF50; /* 生机勃勃的绿色 */
color: white;
padding: 10px 20px;
border: none;
border-radius: 8px;
cursor: pointer;
}
.sad-btn {
background-color: #f44336; /* 忧郁的红色 */
color: white;
padding: 10px 20px;
border: none;
border-radius: 8px;
cursor: pointer;
opacity: 0.7;
}
</style>
深度分析:
:class前面的冒号:是v-bind:的缩写,告诉Vue这不是字符串,是JavaScript表达式。- 对象里的键
'happy-btn'就是

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



