【尚硅谷 Vue学习】P18姓名案例 P19 计算属性 p20计算属性_简写 P21天气案例


前言:仅做笔记使用。不是制作精良的博客。

时间:2022/11/15

P18姓名案例

1.用插值的方式

image-20221115105128689

image-20221115105303878

<body>
  <!--准备好一个容器-->
  <div id="root">
    姓:<input type="text" v-model="firstName"><br/><br/>
    名:<input type="text" v-model="lastName"><br/><br/>
          <!--缺点:{{}}里面会太繁琐-->
    姓名:<span>{{firstName.slice(0,3)}} {{lastName}}</span>
  </div>


  <script type="text/javascript">
    Vue.config.productionTip=false;
    new Vue({
      el:'#root',
      data:{
        firstName:'',
        lastName:''
      }
    })
  </script>
</body>

上面的代码违反Vue的一个原则:简单表达式

好例子:

image-20221115105425167

2.用方法的方式

image-20221115105740201

fullName();返回一个返回值

fullName()
{
    return this.fistName+'-'+this.lastName
}

但是会调用很多次。

P19 计算属性

什么是属性?

image-20221115111518363

data里面的就是属性,红色的是属性名,==:==后面的是属性值。

根据原有属性进行计算得到的全新属性就是计算属性

Vue里面属性与计算属性分开放。

计算属性:computed

fullName(计算属性)也在vm身上。

fullName是个对象

image-20221115112855459

<body>
  <!--准备好一个容器-->
  <div id="root">
    姓:<input type="text" v-model="firstName"><br/><br/>
    名:<input type="text" v-model="lastName"><br/><br/>
    <!--缺点:{{}}里面会太繁琐-->
    姓名:<span>{{fullName}}</span>
  </div>


  <script type="text/javascript">
    Vue.config.productionTip=false;
    new Vue({
      el:'#root',
      data:{
        firstName:'',
        lastName:''
      },
      computed:{
        fullName:{
          //get有什么作用?
          //当有人读取fullName时,get就会被调用,且返回值就作为fullName值
          //get什么时候被调用?
          //1.初次读取fullName时,2.所依赖的数据(x+y=z,x跟y就是依赖的数据)发生变化时、
          get(){
            alert('get被调用')
            return this.firstName+' '+this.lastName
          }
        }
      }

    })
  </script>
</body>

set:

image-20221115114455226

          //set什么时候调用?当fullName被修改时
          set(value){
            const arr=value.split('-')
            this.firstName=arr[0]
            this.lastName=arr[1]
          }

总结:

image-20221115115008337

p20计算属性_简写

只有考虑读取不考虑修改的时候

      computed:{
        //简写
        fullName(){
          console.log('get被调用了')
          return this.firstName+'-'+this.lastName
        }
      }

P21天气案例

Vue的好用插件:

Vue语法补全

image-20221115120759845

天气案例:

不咋样的版本:

<body>
  <!--准备好一个容器-->
  <div id="root">
    <h2>今天天气很 {{isHot?'炎热':'凉爽'}}</h2>
    <button>切换天气</button>
  </div>


  <script type="text/javascript">
    Vue.config.productionTip=false;
    new Vue({
      el:'#root',
      data:{
        isHot:true
      }
    })
  </script>
</body>

进阶一下:

<body>
  <!--准备好一个容器-->
  <div id="root">
    <h2>今天天气很 {{info}}</h2>
    <button @click="changeWeather">切换天气</button>
  </div>


  <script type="text/javascript">
    Vue.config.productionTip=false;
    new Vue({
      el:'#root',
      data:{
        isHot:true
      },
      computed:{
        info(){
          return this.isHot?'炎热':'凉爽'
        }
      },
      methods: {
        changeWeather(){
          this.isHot=!this.isHot
        }
      },
    })
  </script>
</body>

不写methods:

简单语句

image-20221115122734607

image-20221115123634999

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潮.eth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值