Vue学习第三天

Vue模板语法

插值表达式

    <div>{{name}}</div>

v-html语句和v-text语句

    <div v-text="name"></div>
    <div v-html="name"></div>

二者的区别在于,v-text直接将内容复制给页面,而v-html则将经过解析之后再将结果展示,示例如下:

<div id="app">
   <div v-text="name"></div>
    <div v-html="name"></div>
 </div>
  <scrpit>
   var vm = new Vue({
   el:"#app",
   data:{
   name:"<h1>Dell</h1>"
   })
 </script>   
输出示例:
<h1>Dell</h1>
Dell(h1格式输出)

Vue与js
所有Vue中的指令都可以去写js的表达式,例如:

<div id="app">
   <div v-text="name +'mark'"></div>
    <div v-html="name+'mark'"></div>
 </div>
  <scrpit>
   var vm = new Vue({
   el:"#app",
   data:{
   name:"Dell"
   })
 </script>   
输出示例:
Dell mark
Dell mark

同样在插值表达式中野可以去写js语句,例如:

<div>{{name+'mark'}}</div>
输出示例:
Dell mark

计算属性、方法、侦听器

<div id="app">
    {{fullName}}
    {{age}}
</div>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            firstName:"Dell",
            lastName:"Lee",
            age:27
        },
        //计算属性
       computed:{
            fullName:function () {
                return this.firstName + " " +this.lastName;
            }
        }
    })

计算属性computed在一定程度上解决了数据冗余,同时计算属性存在一个缓存区,当计算属性中依赖的值没有发生改变时,计算属性会直接调用缓存区的值,不需要再次运算

<div id="app">
    {{fullName()}}//方法的调用需要注意括号的添加
    {{age}}
</div>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            firstName:"Dell",
            lastName:"Lee",
            age:27
        },
        //方法
        methods:{
            fullName:function () {
                return this.firstName + " " +this.lastName;
            }
        }
   })

直接用方法也可以实现上述功能,但是当重新渲染时,方法并不能实现缓存效果,即一旦有数据发生改变,方法中的内容也将被重新渲染

<div id="app">
    {{fullName}}
    {{age}}
</div>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            firstName:"Dell",
            lastName:"Lee",
            age:27
        },
        //监听器
        watch:{
            firstName: function () {
                this.fullName = this.firstName + " " + this.lastName;
            },
            lastName: function () {
                this.fullName = this.firstName + " " + this.lastName;
            }
        }
    })

使用侦听器的方法与计算属性一样,存在缓存功能。但是由于监听器的结构比计算属性要复杂的多,所以一般我们大多采用计算属性方法来实现该项功能。
计算属性的setter和getter

<div id="app">
    {{fullName}}
</div>
<script>
    var vm = new Vue({
        el:"#app",
        data:{
            firstName:"Dell",
            lastName:"Lee",
        },
        //计算属性
          computed:{
              fullName:{
                  get:function () {
                      return this.firstName + " " +this.lastName;
                  },
                  set:function (value) {
                      var arr = value.split(" ");
                      this.firstName = arr[0];
                      this.lastName = arr[1];
                  }
              }
          }
    })
</script>

计算属性中的get和set方法允许用户对对象属性进行修改,并重新渲染展示。
split()函数复习回顾
split()方法用于把一个字符串分割成字符串数组。
语法部分

stringObject.split(separator,howmany)

separator属性:决定了数组以什么标识符来划分,是必须的属性;
howmany属性:决定了字符串的长度,是可选的属性;
示例:

value = "how are you?"
 var arr = value.split(" ");     //['how','are','you?']
 var arr = value.split(" ",2);   //['how','are']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值