vue学习笔记之指令修饰符,v-bind和v-model

一:指令修饰符 

45822188033244ceacedb2e178b8605c.png

二:v-bind操作class 

fa92499ddde544cb9071bf368177b880.png

案例:7fae315e52bf4f82819a2e6817a6589a.png

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul {
            display: flex;
        }

        li {
            margin-right: 10px;
            padding: 5px;
        }

        a {
            text-decoration: none;
            color: black;
        }

        li.active a {
            background-color: red;
        }
    </style>
</head>

<body>
    <div id="app">
        <ul>
            <li v-for="(item,index) in list" :key="item.id" @click="activeIndex = index" :class="{active: index === activeIndex}">
                <a href="#">{{item.name}}</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: {
                activeIndex: 0, //记录高亮
                list: [
                    { id: 1, name: '京东秒杀' },
                    { id: 2, name: '每日特价' },
                    { id: 3, name: '品类秒杀' }
                ]
            }
        })
    </script>
</body>

</html>

三:v-bind对于样式控制的增强-操作style

c5ae6a2622de4201a974015d96dadd73.png

四:v-model应用于其他表单元素:

c22330ab9c204fa5a2a890182731810c.png

 4.1:v-model原理:

4.2:表单类组件封装&v-model简化代码:

(子组件中有父组件的数据,不能使用v-model进行双向绑定,需要在子组件中把v-model拆解成:value属性和input事件,父组件中进行监听输入的方式实现)

 

4.3:封装表单类组件总结: 

 案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <h3>小黑学习网</h3>

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

        是否单身:
            <input type="checkbox" v-model="isSingle">
            <br><br>

        性别:
            <input v-model="gender" type="radio" name="gender" value="1">男
            <input v-model="gender" type="radio" name="gender" value="2">女
            <br><br>

        所在城市:
            <select v-model="cityId">
                <option value="101">北京</option>
                <option value="102">上海</option>
                <option value="103">成都</option>
                <option value="104">南京</option>
            </select>
            <br><br>

        自我描述:
            <textarea v-model="desc"></textarea>

        <button>立即注册</button>

        <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
    <script>
        const app = new Vue({
            el: '#app',
            data: {
                username: '',
                isSingle: false,
                gender: "2",
                cityId: "102",
                desc: ""
            }
        })
    </script>
    </div>
</body>
</html>

五:计算属性:ae6a089c0958482585f6f955901f1ba3.png

5.1计算属性与方法进行比较: a838fc6a6fb2481abf163c11509c7611.png

5,.2计算属性的完整写法b020f9a74ad847de91d0a63423f9cc71.png六: watch侦听器(监视器):

55b7eef9c5db40c5b89d70fc73f05a88.png

62db3fc7bfbf4cb79bbb2836a3e4c9bd.png 842ec5582baf40ebb9b92dd93efc007a.png

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值