vue的绑定样式and计算属性and侦听器and过滤器

一、样式绑定

<div id="app">
// 设置一个按钮设置点击事件 从而获取到样式
   <button @click="bg_b=true">显示蓝色背景</button>
   <button @click="c_w=true">显示白色字体</button>
   <!-- :class可以绑定一个对象,对象的属性名是类选择器的名称,属性值返回true,表示添加该选择器。 -->
//   <!-- :class指定一个对象,对象的属性名必须是样式的名字,属性值必须返回布尔值,表示拥有指定的样式 ,如果属性有横线的话 就要加个引号-->
   <div :class="{bg_b:bg_b,c_w:c_w}">好好学习Vue</div>
   <button @click="arr.push('bg_p')">显示粉色背景</button>
   <button @click="arr.push('c_g')">显示绿色字体</button>
   <!-- :class可以绑定字符串一个数组,数组中的每一个元素就是一个选择器 -->
   <div :class="arr">好好学习Vue</div>
   <!-- :class可以直接绑定一个表示 -->
   <div :class="bg_b?'bg_b':''">好好学习Vue</div>
   <!-- :class也可以通过数组绑定多个表达式 -->
   <div :class="[bg_b?'bg_b':'',c_w?'c_w':'']">好好学习Vue</div>
   <hr>
   <p>背景色:<input type="text" v-model="bgc"></p>
   <p>字体色:<input type="text" v-model="c"></p>
   <!-- :class是绑定类选择器,:style是绑定内联样式。
:style通常也是绑定一个对象,对象的属性名是原生CSS的属性名,但是要采用小驼峰命名规范。 -->
   <div :style="{backgroundColor:bgc,color:c}">好好学习Vue</div>
   
   <ul>
       <li @click="activeIndex=index" v-for="(item,index) in list" :key="index" :class="{active:activeIndex===index}">{{item}}</li>
   </ul>
</div>

二、 计算属性

 <div id="add">
        <ul>
            <li v-for="(item,index) in goodses">产品: {{item.name}} ------ 价格: {{item.price}}元 </li>
        </ul>
        <div> 总价是:{{totalPrice}}元</div>
    </div>
    <script src='https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.common.dev.js'></script>
    <script>
        new Vue({
            el: '#add',
            data: {
                goodses: [{
                    name: '洗衣机',
                    price: 3999
                }, {
                    name: '电视机',
                    price: 7999
                }, {
                    name: '油烟机',
                    price: 2888
                }, {
                    name: '计算机',
                    price: 7999
                }, {
                    name: '照相机',
                    price: 1999
                }, {
                    name: '手机',
                    price: 3999
                }]
            },
            menthods() {

            },
           // 计算属性
            computed: {
                totalPrice() {
                    // let sum = 0
                    // this.goodses.forEach(r => {
                    //     sum += r.price
                    // });
                    // return sum
                   return this.goodses.reduce((a,b)=>{
                   return a + b.price
                   },0)
                }
            }
        }) </script>

计算属性得优势:有缓存,当页面数据发生变化时候,所有得方法都要重新执行,当计算属性用到得数据发生变化时候,计算属性才会重新执行
计算属性里边,定义的是方法:而这些方法在模板中 是当前属性来使用的,这个属性是计算之后返回的结果
定义计算属性时,不要跟methods选项里边的方法同名
计算属性也有监视的能力

三、 侦听器

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容