2.Vue指令

本地应用
    1.通过Vue实现常见的网页效果
    2.学习Vue指令,以巩固知识点
    3.Vue指令指的是,以v-开头的一组特殊语法
Vue指令
    1.v-text  设置标签的文本值(textContent),会替换所有内容
    2.v-html  设置标签的innerHTML
    3.v-on/@  为元素绑定事件 
        可传递自定义参数 @click="doit(p1,p2)" dolt:function(p1,p2){}
        可传递事件修饰符 @keyup.enter="Hi"  Hi:function(){} 
    4.v-show  根据表达值的真假,切换元素的显示和隐藏(控制元素的显示方式)
    5.v-if    根据表达值的真假,切换元素的显示和隐藏(控制节点存在与否,耗费性能)
    6.v-bind/:  设置元素的属性
    7.v-for 根据数据生成列表结构 (经常和数组结合使用)
    8.v-model  获取和设置表单元素的值(双向数据绑定)

代码示例:

    <style>
        .active{
            border: 20px solid red;
        }
    </style>
   <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
   <script>
        window.onload=function(){
            var app = new Vue({
                el:'#app',
                data:{
                    message:'v-text指令',
                    content:'<a href="https://www.baidu.com">百度</a>',
                    food:'卫龙辣条',
                    isShow:false,
                    age:17,
                    imgSrc:"img/李老八.jpg",
                    imgTitle:"李老八",
                    isActive:false,
                    arr:[1,2,3],
                    vegetables:[
                        {name:"西兰花"},
                        {name:"火龙果"}
                    ],
                    messages:"v-model双向数据绑定",

                },
                methods: {
                    doW:function(){
                        alert('wakanda forever!');
                    },
                    changFood:function(){
                        this.food+='好恰!'; 
                    },
                    changeIsShow:function(){
                        this.isShow = !this.isShow;
                    },
                    swClass:function(){
                        this.isActive = !this.isActive;
                    },
                    add:function(){
                        this.vegetables.push({name:"菠菜"});
                    },
                    remove:function(){
                        this.vegetables.shift();
                    },
                    doit:function(p1,p2){
                        alert(p1+p2);
                    },
                    Hi:function(){
                        alert("传事件修饰符");
                    },
                    getM:function(){
                        alert(this.messages);
                    },
                    setM:function(){
                        this.messages="改变messages";
                    },


                },





            })
        }
   </script>
<body>
    <div id="app">
        <h2 v-text='message+"!"'></h2> <!-- 会替换所有文本内容 -->
        <h2>你好,{{message+'!'}}</h2>  <!-- 只会替换括号内文本的内容 -->

        <h2 v-html='content'></h2> <!-- 会替换innerHTML的内容 -->

        <input type="button" value="v-on指令" v-on:click='doW'>
        <input type="button" value="v-on简写" @mouseenter='doW'>
        <h2 @click='changFood'>{{food}}</h2>

        <input type="button" value="切换隐藏/显示" @click='changeIsShow'>
        <img src="img/乔瑟夫.jpg" alt="" v-show='isShow'>  <!-- 根据isShow的真/假,显示/隐藏 -->
        <img src="img/乔瑟夫.jpg" alt="" v-show='false'>   <!-- 隐藏 -->  
        <img src="img/乔瑟夫.jpg" alt="" v-if='age>=17'> <!-- 根据表达式的真/假,显示/隐藏 -->

        <input type="button" value="切换类名" @click="swClass">
        <img v-bind:src="imgSrc" alt="">
        <!-- 下面为简写(常用) -->    
        <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="isActive?'active':''">  <!-- 使用三元表达式改变类名 -->
        <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="{active:isActive}"> <!-- active类名是否生效取决于isActive的真假 --> 
           
        <ul>
            <li v-for="(item,index) in arr"> <!-- 数组 -->         
                {{index}}生成列表:{{item}} 
            </li>
        </ul>
        <h2 v-for="(item, index) in vegetables" :title="item.name"> <!-- 对象数组 -->
            {{item.name}}
        </h2>   
        <input type="button" value="添加蔬菜" @click="add">
        <input type="button" value="移除蔬菜" @click="remove"> 

        <input type="button" value="传参数" @click="doit(777,'传参数')">
        <input type="button" value="传修饰符" @keyup.enter="Hi"> 
        <!-- 按下enter调用方法 --> 

        <input type="text" v-model="messages" @keyup.enter="getM">  <!-- 可获取数据 -->
        <h2>{{messages}}</h2>  <!-- 改变表单值,也会改变messages值,反之一样(双向数据绑定) -->
        <input type="button" value="修改messages" @click="setM">
    </div>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值