http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 2542|回复: 5

[vue.js学习笔记] [Vue.js]学习笔记-Vue.js样式绑定-class属性绑定-计算属性

[复制链接]
发表于 2018-12-14 17:27:43 | 显示全部楼层 |阅读模式
[Vue.js]学习笔记-Vue.js样式绑定-class属性绑定-计算属性




导读部分





教程部分


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>

运行结果如下:
3.jpg   

在此时,我们只要改变绑定数据的值,就能轻松的修改页面显示的背景色
如: 将error.type的值设置为: fatal2  , 运行的结果会是是什么样子呢, 如下图:
2.jpg

代码实例如下:
[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: 'fatal2'
    }
  },
  computed: {
    classObject: function () {
      return {
  base: true,
        active: this.isActive && !this.error.value,
        'text-danger': this.error.value && this.error.type === 'fatal',
      }
    }
  }
})
</script>
</body>
</html>

分析上例可以看到, 在计算属性中, 'text-danger': this.error.value && this.error.type === 'fatal', 当将error.type设置为fatal2时,text-danger:计算结果为false。  故在页面上绑定的class属性中,没有text-danger。 而text-danger 的作用则是给div添加背景色 red, 故修改内容后,实例运行结果为一个空白的页面



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-14 17:45:58 | 显示全部楼层
看到这帖子真是高兴!
发表于 2018-12-14 17:56:50 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-15 13:57:25 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-16 20:26:14 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-16 23:08:13 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-29 18:40

© 2014-2021

快速回复 返回顶部 返回列表