苏飞论坛

标题: [Vue.js]学习笔记-Vue.js样式绑定-class属性绑定-计算属性 [打印本页]

作者: 范范    时间: 2018-12-14 17:27
标题: [Vue.js]学习笔记-Vue.js样式绑定-class属性绑定-计算属性
[Vue.js]学习笔记-Vue.js样式绑定-class属性绑定-计算属性




导读部分


讨论区:http://www.sufeinet.com/forum-58-1.html

教程目录:http://www.sufeinet.com/thread-24026-1-1.html


教程部分


Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
另: Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统

class 与 style 是 HTML 元素的属性,用于设置元素的样式, 在Vue.js中, 我们可以通过v-bind来设置样式属性
Vue.js v-bind 在处理 class 和 style 时, 表达式的结果类型除了字符串之外,还可以是对象或数组。

而我们在进行class的属性绑定时, 我们可以在对象中返回一个计算属性, 来控制绑定样式的显示等

计算属性的的使用, 是一个很常用且强大的模式, 可以将页面的html 代码简单化 ,逻辑在js中进行处理, 方便后期的维护与代码检查。

下面我们通过实例,来进行学习计算属性作为返回对象在样式绑定中的应用

实例:

[HTML] 纯文本查看 复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 苏飞论坛(sufeinet.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<style>
.base {
  width: 100px;
  height: 100px;
}

.active {
  background: green;
}

.text-danger {
  background: red;
}
</style>
</head>
<body>
<div id="app">
  <div v-bind:class="classObject"></div>
</div>
<script>

new Vue({
  el: '#app',
  data: {
    isActive: true,
    error: {
      value: true,
      type: 'fatal'
    }
  },
  computed: {
    classObject: function () {
      return {
  base: true,
        active: this.isActive && !this.error.value,
        'text-danger': this.error.value && this.error.type === 'fatal',
      }
    }
  }
})
</script>
</body>
</html>

运行结果如下:
(, 下载次数: 135)