Vue学习第一天

Vue第一天学习,一些基本的指令。

v-once:只有初始化的时候显示,其他不改变。

因为Vue是响应式的,所以当我们引入的变量的值发生改变时,页面也会发生改变,如果我们的需求是:只有初始化的时候显示,而不让以后发生改变 就可以使用这个标签。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="../js/vue.js"></script>
<body>
<div id="app">
  <h2 v-once>{{message}}</h2>
  <h2>{{message}}</h2>
  <h2>{{lastname+firstname}}</h2>
  <h2>{{lastname + ' ' +firstname}}</h2>
  <h2>{{counter+20}}</h2>
</div>


</body>


<script>
  const app = new Vue({
    el: '#app',
    data: {
      message: '你好啊',
      movies: ['星际穿越', '大话西游', '少年拍', '盗梦空间'],
      lastname:'james',
      firstname:'lebulang',
      counter:20
    }
  })

</script>
</html>

在这里插入图片描述

不管是v-once,v-pre,v-text都是修改文本文本框内的内容,但但是,除了内容需要动态显示外,有些属性也是需要动态显示的,这时候就需要我们的v-bind标签

在这里插入图片描述

v-bind : 动态绑定图片: 语法糖: 只要一个 :

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="../js/vue.js"></script>
<body>
<div id="app">
  <img v-bind:src="imgurl"></img>
  // 语法糖
  <img :src="imgurl"></img>
  <h2>{{mes}}</h2>
</div>

</body>
<script>
  const app = new Vue({
    el:'#app',
    data:{imgurl:'https://s1.ax1x.com/2020/07/13/UGXHF1.jpg',
          mes:'智慧哨兵'
    }
  })
</script>
</html>

效果图:
在这里插入图片描述

v-bind 对于class的修饰

在这里插入图片描述

在这里插入图片描述
此时 三个名字都在,因为默认设置为true,如果我们改变为false
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="../js/vue.js"></script>
<style>
  .active{
    color: red;
  }
</style>
<body>
<div id="app">
 <h2 class="title" :class="{active:isActive,line:isLine}"> {{mes}}</h2>
  <button @click="changeColor">点击</button>
</div>

</body>
<script>
  const app = new Vue({
    el:'#app',
    data:{
      mes:'智慧哨兵',
      isActive:true,
      isLine:true
    },
    methods:{
      changeColor:function () {
        this.isActive=!this.isActive;
        this.isLine=!this.isLine;
      }
    }
  })
</script>
</html>

计算属性:computed: 将方法当作是一个属性

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="../js/vue.js"></script>
<body>
<div id="app">
  <h2>{{firstname+' '+lastname}}</h2>
  <h2>{{getFullname()}}</h2>
  // 计算属性不需要 ()
  <h2>{{Fullname}}</h2>
</div>

</body>
<script>
  const app = new Vue({
    el:'#app',
    data:{
      firstname:'Lebron',
      lastname:'james'
    },

    // 计算属性
    computed:{
      Fullname(){
        return this.firstname+ ' ' + this.lastname
      }
    },
    methods:{
      getFullname(){
        return this.firstname+ ' ' + this.lastname
      }
    }
  })
</script>
</html>

在这里插入图片描述

小案例:通过计算属性 计算商品的总价,

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<script src="../js/vue.js"></script>
<body>
<div id="app">

  <h2>商品的总价格为:{{totalPrice}}</h2>
</div>

</body>
<script>
  const app = new Vue({
    el:'#app',
    data:{
      books:[
        {id:110,name:'Linux编程大全',price:110},
        {id:111,name:'Spring',price:120},
        {id:112,name:'SpringMVC',price:130},
        {id:113,name:'SpringBoot',price:140}
      ]
    },
    /*计算属性*/
    computed:{
      totalPrice:function(){
        let total=0;
        for (let book of this.books) {
          total += book.price;
        }
        return total;
      }
    }
  })
</script>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值