美文网首页
Vue实例的属性 计算属性

Vue实例的属性 计算属性

作者: 闫梓璇 | 来源:发表于2018-09-14 11:30 被阅读0次

    body部分:

    <div id="app">
       {{message}}
       <p ref='hello'>你好</p>
    </div>
    

    js部分:

    var vm=new Vue({
            el:'#app',
            data:{
                message:'hello world'
            },
            uname:'jack',
            age:18
    })
    
    //$el  获取Vue绑定的元素
        console.log(vm.$el)
        vm.$el.style.color='pink'
    //data  获取Vue实例中的数据
        console.log(vm.$data)
    //options  获取Vue实例中的自定义属性
        console.log(vm.$options.uname)
        console.log(vm.$options.age)
    //refs  获取所有带ref属性的元素
        console.log(vm.$refs)
        console.log(vm.$refs.hello)
    

    计算属性:
    案例:hello Vue变成 Vue===hello 虽然{{}}可以解析数据,但是{{}}中不能写复杂的逻辑属性,所有复杂的业务逻辑都要使用计算属性,使用计算属性便于后期维护

    <div id='itany'>
    <!--   <p>{{msg.split(' ').reverse().join('===')}}</p>   -->
         <h1>{{msg}}</h1>
         <a href="#">{{revMsg}}</a>
    </div>
    
    new Vue({
       el:'#itany',
       data:{
           msg:'hello vue'
       },
       computed:{
           revMsg:function(){
              return this.msg.split(' ').reverse().join('===')
           }
       }
     })    
    

    案例:
    效果:点击加货总价会变化


    QQ截图20180917175031.png

    body部分:

    <div id="app">
       <button v-on:click='jh'>加货</button>
       <h1>总价为:{{tota}}</h1>
    </div>
    

    js部分:

    new Vue({
            el:'#app',
            data:{
                pack1:{count:5,price:3},
                pack2:{count:8,price:4}
            },
            computed:{
                tota:function(){
                    return this.pack1.count*this.pack1.price+this.pack2.count*this.pack2.price
                }
            },
            methods:{
                jh:function(){
                    this.pack1.price++
                }
            }
        })
    

    有人说为什么price加1而最后结果加5,因为price+1后的pack1的结果变为54=20,未+1时53=15,所以结果每次都加5

    相关文章

      网友评论

          本文标题:Vue实例的属性 计算属性

          本文链接:https://www.haomeiwen.com/subject/ssxogftx.html