vue修饰符

本文详细介绍了Vue中的指令修饰符、v-bind的样式增强操作、v-model在表单元素中的应用,以及computed计算属性和watch侦听器的使用。并通过实例展示了如何实现动态渲染、事件处理和京东秒杀tab栏的高亮切换。
摘要由CSDN通过智能技术生成

 1.指令补充

1. 指令修饰符

2. v-bind对样式增强的操作

3. v-model应用于其他表单元素

### 2.computed计算属性

1. 基础语法

2. 计算属性vs方法

3. 计算属性的完整写法

4. 成绩案例

### 3.watch侦听器

1. 基础写法

2. 完整写法

### 4.综合案例 (演示)

1. 渲染  /  删除  /  修改数量 / 全选 / 反选 / 统计总价 /  持久化



 

## 二、指令修饰符

### 1.什么是指令修饰符?

​ 所谓指令修饰符就是通过“.”指明一些指令**后缀** 不同的**后缀**封装了不同的处理操作  —> 简化代码

### 2.按键修饰符

- @keyup.enter  —>当点击enter键的时候才触发

代码演示:

<div id="app">

    <h3>@keyup.enter  →  监听键盘回车事件</h3>

    <input v-model="username" type="text">

  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

  <script>

    const app = new Vue({

      el: '#app',

      data: {

        username: ''

      },

      methods: {

       

      }

    })

  </script>

### 3.v-model修饰符

- v-model.trim  —>去除首位空格

- v-model.number —>转数字

### 4.事件修饰符

- @事件名.stop —> 阻止冒泡

- @事件名.prevent  —>阻止默认行为

- @事件名.stop.prevent —>可以连用 即阻止事件冒泡也阻止默认行为

 <style>

    .father {

      width: 200px;

      height: 200px;

      background-color: pink;

      margin-top: 20px;

    }

    .son {

      width: 100px;

      height: 100px;

      background-color: skyblue;

    }

  </style>
 <div id="app">

    <h3>v-model修饰符 .trim .number</h3>

    姓名:<input v-model="username" type="text"><br>

    年纪:<input v-model="age" type="text"><br>



   

    <h3>@事件名.stop     →  阻止冒泡</h3>

    <div @click="fatherFn" class="father">

      <div @click="sonFn" class="son">儿子</div>

    </div>



    <h3>@事件名.prevent  →  阻止默认行为</h3>

    <a @click href="http://www.baidu.com">阻止默认行为</a>

  </div>


 

 <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

  <script>

    const app = new Vue({

      el: '#app',

      data: {

        username: '',

        age: '',

      },

      methods: {

        fatherFn () {

          alert('老父亲被点击了')

        },

        sonFn (e) {

          // e.stopPropagation()

          alert('儿子被点击了')

        }

      }

    })

  </script>

```

## 三、v-bind对样式控制的增强-操作class

为了方便开发者进行样式控制, Vue 扩展了 v-bind 的语法,可以针对 **class 类名** 和 **style 行内样式** 进行控制 。

### 1.语法:

```html

<div> :class = "对象/数组">这是一个div</div>

```

### 2.对象语法

当class动态绑定的是**对象**时,**键就是类名,值就是布尔值**,如果值是**true**,就有这个类,否则没有这个类

```html

<div class="box" :class="{ 类名1: 布尔值, 类名2: 布尔值 }"></div>

```

​    适用场景:一个类名,来回切换

### 3.数组语法

当class动态绑定的是**数组**时 → 数组中所有的类,都会添加到盒子上,本质就是一个 class 列表

```html

<div class="box" :class="[ 类名1, 类名2, 类名3 ]"></div>

```

   使用场景:批量添加或删除类

### 4.代码练习

```html

 <style>

    .box {

      width: 200px;

      height: 200px;

      border: 3px solid #000;

      font-size: 30px;

      margin-top: 10px;

    }

    .pink {

      background-color: pink;

    }

    .big {

      width: 300px;

      height: 300px;

    }

  </style>


 

<div id="app">

    <!--绑定对象-->

    <div class="box">黑马程序员</div>

    <!--绑定数组-->

    <div class="box">黑马程序员</div>

  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

  <script>

    const app = new Vue({

      el: '#app',

      data: {



      }

    })

  </script>

```



 

## 四、京东秒杀-tab栏切换导航高亮

### 1.需求:

​ 当我们点击哪个tab页签时,哪个tab页签就高亮

### 2.准备代码:

```html

 <style>

    * {

      margin: 0;

      padding: 0;

    }

    ul {

      display: flex;

      border-bottom: 2px solid #e01222;

      padding: 0 10px;

    }

    li {

      width: 100px;

      height: 50px;

      line-height: 50px;

      list-style: none;

      text-align: center;

    }

    li a {

      display: block;

      text-decoration: none;

      font-weight: bold;

      color: #333333;

    }

    li a.active {

      background-color: #e01222;

      color: #fff;

    }



  </style>
<div id="app">

    <ul>

      <li><a class="active" href="#">京东秒杀</a></li>

      <li><a href="#">每日特价</a></li>

      <li><a href="#">品类秒杀</a></li>

    </ul>

  </div>

  <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

  <script>

    const app = new Vue({

      el: '#app',

      data: {

        list: [

          { id: 1, name: '京东秒杀' },

          { id: 2, name: '每日特价' },

          { id: 3, name: '品类秒杀' }

        ]

      }

    })

  </script>

```

### 3.思路:

1.基于数据,动态渲染tab(v-for)

2.准备一个下标 记录高亮的是哪一个 tab

3.基于下标动态切换class的类名

### 1.指令补充

1. 指令修饰符

2. v-bind对样式增强的操作

3. v-model应用于其他表单元素

### 2.computed计算属性

1. 基础语法

2. 计算属性vs方法

3. 计算属性的完整写法

4. 成绩案例

### 3.watch侦听器

1. 基础写法

2. 完整写法

### 4.综合案例 (演示)

1. 渲染  /  删除  /  修改数量 / 全选 / 反选 / 统计总价 /  持久化



 

## 二、指令修饰符

### 1.什么是指令修饰符?

​ 所谓指令修饰符就是通过“.”指明一些指令**后缀** 不同的**后缀**封装了不同的处理操作  —> 简化代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值