vue常用指令

1. 什么是指令?

用来扩展html标签的功能
angular中常用的指令:
    ng-model
    ng-repeat
    ng-click
    ng-show/ng-hide
    ng-if

2. vue中常用的指令

  • v-model
    双向数据绑定,一般用于表单元素
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用指令:v-model</title>
    <script src="js/vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                // el:'.itany',
                el:'div', //vue2.0中不允许将vue实例挂载到<html>或<body>元素,在vue1.0中是可以的
                data:{
                    name:'', //即使没有值,也不能省略,报错
                    age:21,
                    flag:true,
                    nums:[12,4,23,5],
                    user:{id:9527,name:'唐伯虎'}
                }
            });
        }
    </script>
</head>
<body>
    <!-- <div id="itany"> -->
    <!-- <div class="itany"> -->
    <div>
        用户名:<input type="text" v-model="name">
        <br>

        {{name}} <br>
        {{age}} <br>
        {{flag}} <br>
        {{nums}} <br>
        {{user}}
    </div>
</body>
</html>
  • v-for
    对数组或对象进行循环操作,使用的是v-for,不是v-repeat
    注:

    • 在vue1.0中提供了隐式变量,如$index、$key
    • 在vue2.0中去除了隐式变量,已被废除
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用指令:v-for</title>
    <script src="js/vue.js"></script>
    <script>
        window.onload=function(){
            new Vue({
                el:'#itany',
                data:{
                    arr:[12,4,5,34,2,11],
                    user:{id:9527,name:'唐伯虎',age:25},
                    arr2:[12,4,5,34,2,11,12],
                    users:[
                        {id:9527,name:'唐伯虎',age:25},
                        {id:1001,name:'秋香',age:22},
                        {id:1002,name:'石榴姐',age:24}
                    ]
                }
            });
        }
    </script>
</head>
<body>
    <div id="itany">
        <!-- {{arr}} -->

        <ul>
            <!-- 普通循环 -->
            <!-- <li v-for="value in arr">{{value}}</li> -->
            <!-- <li v-for="value in user">{{value}}</li> -->

            <!-- 键值循环 -->
            <!-- <li v-for="(v,k) in arr">{{k}}={{v}}</li> -->
            <!-- <li v-for="(v,k) in user">{{k}}={{v}}</li> -->

            <!-- 可以直接循环包含重复数据的集合,可以通过指定:key属性绑定唯一key,当更新元素时可重用元素,提高效率,类似于vue1.0中track-by -->
            <!-- <li v-for="(v,k) in arr2" :key="k">{{v}}</li> -->

            <li v-for="(user,index) in users">
                {{index+1}},{{user.id}},{{user.name}},{{user.age}}
            </li>
        </ul>
    </div>
</body>
</html>
  • v-on
    用来绑定事件,用法:v-on:事件=”函数”
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用指令:v-on</title>
    <script src="js/vue.js"></script>
    <script>
        window.onload=function(){
            let vm=new Vue({
                el:'#itany',
                data:{  //存储数据
                    arr:[12,34,45,23,5]
                },
                methods:{ //存储方法
                    show:function(){
                        console.log('show方法');
                    },
                    add(){
                        // console.log(this); //this表示当前vue实例
                        // console.log(this===vm); //true
                        this.arr.push(666); //使用this访问当前实例中的成员
                        // this.show();
                    }
                }
            });
        }
    </script>
</head>
<body>
    <div id="itany">
        <!-- <button onclick="show()">点我</button> -->
        <button v-on:click="show">点我</button>
        <button v-on:click="add()">向数组中添加一个元素</button>
        <br>
        {{arr}}
        <hr>

        <button v-on:mouseover="show">鼠标经过</button>
        <button v-on:dblclick="show">鼠标双击</button>
    </div>
</body>
</html>
  • v-show/v-if
    用来显示或隐藏元素,v-show是通过display实现,v-if是每次删除后再重新创建,与angular中类似
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>常用指令:v-show</title>
    <script src="js/vue.js"></script>
    <script>
        window.onload=function(){
            let vm=new Vue({
                el:'#itany',
                data:{ 
                    flag:true
                },
                methods:{ 
                    change(){
                        this.flag=!this.flag;
                    }
                }
            });
        }
    </script>
</head>
<body>
    <div id="itany">
        <!-- <button v-on:click="change">隐藏</button> -->
        <button v-on:click="flag=!flag">隐藏</button>

        <hr>
        <div style="width: 100px;height: 100px; background-color: red" v-if="flag">欢迎来到南京</div>
    </div>
</body>
</html>
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇