Vue Class 与 Style 绑定-绑定内联样式-对象语法

Vue / 1216人浏览 / 0人评论

v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名

Vue.js 是什么?

Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

如果你已经是有经验的前端开发者,想知道 Vue 与其它库/框架有哪些区别,请查看对比其它框架。

Vue Class 与 Style 绑定-绑定内联样式-对象语法

以下代码是保存至一个index.html的文档(文件后缀名是.html)中,并非是.vue的文件,当今后学会了一些更vue复杂的应用的时候,比如CLI创建了更复杂的vue应用,并支持单文件组件,那在项目下创建的文件可能就是以.vue为后缀的文件。

v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用引号括起来) 来命名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue Class 与 Style 绑定-绑定内联样式-对象语法</title>
    <script src="vue.js" type="text/javascript" charset="utf-8"></script>       
</head>
<body>
    <h2>Class 与 Style 绑定</h2>
    <!--
    操作元素的 class 列表和内联样式是数据绑定的一个常见需求。
    因为它们都是 attribute,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。
    不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。
    表达式结果的类型除了字符串之外,还可以是对象或数组。
    -->
    <h3>绑定-绑定内联样式</h3>
    <h4>对象语法</h4>
    <div id="app">
        <div v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">{{ sitename }}</div>
        <!--
        data: {
        activeColor: 'red',
        fontSize: 30
        }
        -->
        <!--
        直接绑定到一个样式对象通常更好,这会让模板更清晰:
        -->
        <div v-bind:style="styleObject">{{ sitename }}</div>
        <!--
        data: {
            styleObject: {
                color: 'red',
                fontSize: '13px'
            }
        }
        -->
        <!--
        同样的,对象语法常常结合返回对象的计算属性使用。
        -->
    </div>
    <script type="text/javascript">   
    var vm = new Vue({
        el: '#app',
        data: {
            sitename: '编程之吧',
            activeColor: 'red',
            fontSize: 30,
            styleObject: {
                color: 'red',
                fontSize: '13px'
            }            
        },
    });
    </script>  
</body>
</html>

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我