vue绑定Class属性和style样式的用处

博客介绍了Vue开发中v-bind绑定class属性的关键作用,它可与普通class共存,还能控制class是否存在。同时给出了多种v-bind绑定class和style的示例。此外,对比了v-show和v-if,指出v-show渲染保留在DOM中,大面积切换建议用v-show,不推荐v-if和v-for一起用。

很多时候我们在做开发的途中,一般不会遇到需要用v-bind绑定class属性的地方,其实这是一个比较关键的绑定,决定了某个<div>是否在某一时刻运用某一种class属性的辩解。<div class="static"  v-bind:class="{active: isActive,  'text-danger': hasError}"></div> 在此证明关于v-bind:class可以与普通的class属性共存,也可以控制某个class属性是否存在,这就取决于方法如何使得isActive或者hasError是 true 还是 false。

<div v-bind:class="classObject"></div>

data:{

classObject:{

active: true,

'text-danger': false

}

}

 

<div v-bind:class="[activeClass, errorClass]"></div>

data: { activeClass: 'active', errorClass: 'text-danger' }

 

<div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

data: { activeColor: 'red', fontSize: 30 }

 

<div v-bind:style="styleObject"></div>

data: { styleObject: { color: 'red', fontSize: '13px' } }

v-show 和 v-if : v-show的渲染会被保留在DOM中,v-if的修饰会彻底消失

大面积的切换建议用v-show  不推荐v-if和v-for一起使用。

 

 

 

 

 

 

### Vue VueComponent 的区别与用法 在 Vue.js 框架中,`Vue` 是核心类,用于创建根实例以及管理整个应用的状态生命周期。而 `VueComponent` 并不是一个官方定义的概念,通常是指通过 `Vue.extend()` 或者 ES6 类语法定义的组件对象。 #### 1. **Vue** `Vue` 是框架的核心构造函数,它负责初始化一个新的 Vue 应用程序实例。以下是其主要功能: - 创建并启动 Vue 实例。 - 提供全局配置选项(如插件、指令等)。 - 绑定数据到 DOM 中,并实现双向绑定机制。 代码示例如下: ```javascript new Vue({ el: '#app', data() { return { message: 'Hello from Vue!' }; }, methods: { greet() { alert(this.message); } } }); ``` 此部分描述了如何使用 `Vue` 来构建基础的应用实例[^1]。 #### 2. **VueComponent (实际为 Component 定义)** 虽然没有直接称为 `VueComponent` 的概念,但在开发过程中我们经常提到的是组件化设计中的子组件。这些子组件可以通过多种方式定义,比如使用 `Vue.component()` 注册简单组件或者利用单文件组件 `.vue` 文件来封装更复杂的逻辑。 ##### 使用 Vue.extend() 可以手动扩展一个新类型的组件: ```javascript var MyComponent = Vue.extend({ template: '<div>{{ msg }}</div>', props: ['msg'] }); // 注册该组件至全局或局部范围 Vue.component('my-component', MyComponent); new Vue({el: '#example'}); ``` 上述例子展示了通过继承的方式生成自定义组件的过程[^2]。 ##### 单文件组件 (.vue) 现代项目更多采用这种形式编写独立模块化的 UI 块儿——即所谓的 SFCs(Single File Components),它们集成了模板、样式表及行为脚本于一体。 ```html <template> <div class="hello">{{ greetingMessage }}</div> </template> <script> export default { name: 'HelloWorld', data () { return {greetingMessage:"Welcome!"} } }; </script> <style scoped> .hello{ color:red; } </style> ``` 这里体现了更加结构清晰且易于维护的一种实践方法[^3]。 #### 总结对比 | 特性 | Vue | VueComponent | |--------------------|------------------------------|-------------------------------| | 主要用途 | 初始化应用程序 | 构建可重用UI部件 | | 数据共享能力 | 支持跨多个层次级联传递 | 局限于父传子关系 | | 生命周期钩子数量 | 较少 | 更多特定场景触发的机会 | 尽管两者都属于 vue 生态圈的重要组成部分,但各自扮演的角色有所不同,在具体编码时需依据需求合理选用合适的技术手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luolvzhou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值