vue常见用法(二)

1、计算属性

需要用到computed函数

<!-- 计算属性 -->
<template>
  <div>
    <p>{{ getMsg }}</p>
  </div>
</template>

<script>
  export default {
    name: 'HelloWorld',
    data () {
      return {
        msg:'hello'
      }
    },
    //计算属性值
    computed:{
      getMsg(){
        return this.msg.split('').reverse().join("")
      }
    }
  }
</script>

在这里插入图片描述

2、Class与Style绑定

<!-- Class与Style绑定 -->
<template>
  <div>
    <!--  1、对象语法  -->
    <div>
      <p :class="{active:isActive}">当幸福来敲门</p>
      <button @click="changeActive">切换</button>
    </div>

    <!-- 2、数组语法 -->
    <div>
      <p :class="[c1,c2]">当幸福来敲门</p>
    </div>

    <!-- 3、数组嵌套对象语法 -->
    <div>
      <p :class="[c2,{active:isActive}]">当幸福来敲门</p>
    </div>

    <!-- 4class静态绑定与动态绑定一起使用 -->
    <div>
      <p class="padding" :class="[c2,{active:isActive}]">当幸福来敲门</p>
    </div>
  </div>
</template>

<script>
  export default {
    name: 'HelloWorld',
    data () {
      return {
        isActive:true,
        c1:'col',
        c2:'font'
      }
    },
    //计算属性值
    methods:{
      changeActive:function () {
        this.isActive = !this.isActive;
      }
    }
  }
</script>
<style scoped>
  .active{
    color: orange;
  }
  .col{
    color:red;
  }
  .font{
    font-size: 20px;
  }
  .padding{
    padding-left: 100px;
  }
</style>

在这里插入图片描述

3、表单输入绑定

<!-- 表单输入绑定 -->
<template>
  <div>
    <!--  1、双向数据绑定 v-model -->
    <div>
      <!--  input输入框    -->
      <input type="text" v-model="msg" />
      <p>{{ msg }}</p>

      <!--  复选框    -->
      <input type="checkbox" v-model="checked"/>
      <P>{{ checked }}</P>
    </div>

    <!--  2、修饰符 -->
    <div>
      <input type="text" v-model.lazy="lazyMsg" />
      <p>{{ lazyMsg }}</p>
    </div>

  </div>
</template>

<script>
  export default {
    name: 'HelloWorld',
    data () {
      return {
        msg:'hello',
        checked:true,
        lazyMsg:'hello lazy'
      }
    }
  }
</script>

在这里插入图片描述

4、组件

4.1、组件结构

一个vue文件就是一个组件,它由template、script和style三个部分组成,template为必须项

<!-- 组件由一下三个部分组成 template为必须项 -->
<template>
  <div>
    这是一个组件
  </div>
</template>
<script>
  export default {
    name:"MyComp",
    data(){
      return{
        
      }
    }
  }
</script>
<!-- 指定scoped属性,样式只在当前组件中生效 -->
<style scoped>
  
</style>

4.2、组件复用

自定义一个计数组件MyComp.vue

<!-- 组件复用 -->
<template>
  <div>
    <p>{{ count }}</p>
    <button @click="count += 1">点击</button>
  </div>
</template>
<script>
  export default {
    name:"MyComp",
    data(){
      return{
        count:0
      }
    }
  }
</script>

App.vue中多次引入(复用)

<template>
  <div id="app">
    <MyComp/>
    <MyComp/>
    <MyComp/>
  </div>
</template>

在这里插入图片描述

4.3、组件传参

自定义组件MyComp.vue,传参需要使用到props属性

<!-- 组件传参 -->
<template>
  <div>
    <p>{{ name }}</p>
  </div>
</template>
<script>
  export default {
    name:"MyComp",
    data(){
      return{
      }
    },
    props:["name"]
  }
</script>

App.vue加载组件时为其赋值

<template>
  <div id="app">
    <MyComp name="周星驰" />
    <MyComp name="刘德华" />
    <MyComp/>
  </div>
</template>

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值