vue.js常用指令及用法

v-if

v-if指令可以完全根据表达式的值在DOM中生成或移除一个元素。

如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除;

否则,对应元素的一个克隆将被重新插入DOM中

<template>
    <div id="app">
        <h1>Title</h1>
        <p>paragraph 1</p>
        <p>paragraph 2</p>
    </div>
</template>
 
 
<script type="text/javascript">
    var vm = new Vue({
        el: "#app",
        data: {
            greeting: true
        }
    })
</script>

v-show

v-show指令是根据表达式的值来显示或者隐藏HTML元素。当v-show赋值为false时,元素被隐藏。查看DOM时,会发现元素上多了一个内联样式style=“display:none”。

<template>
    <div id="app">
        <h1>Title</h1>
        <p v-show="ok">我是对的</p>
        <p v-show="no">我是错的</p>
    </div>
</template>
 
 
<script type="text/javascript">
    var vm = new Vue({
        el: "#app",
        data: {
            ok: true,
            no: false
        }
    })
</script>

v-model

v-model指令用来在input、select、text、checkbox、radio等表单控件元素上创建双向数据绑定的。根据控件类型v-model自动选取正确的方法更新元素。

<div id="example">
    <form>
        姓名:
        <input type="text" v-model="data.name" placeholder="姓名"/>
        <br />
        性别:
        <input type="radio" id="one" value="One" v-model="data.sex"/>
        <label for="man"></label>
        <input type="radio" id="two" value="Two" v-model="data.sex"/>
        <label for="male"></label>
        <br />
        <input type="checkbox" id="jack" value="book" v-model="data.interest"/>
        <label for="jack">阅读</label>
        <input type="checkbox" id="john" value="swim" v-model="data.interest"/>
        <label for="john">游泳</label>
        <input type="checkbox" id="move" value="game" v-model="data.interest"/>
        <label for="move">游戏</label>
        <input type="checkbox" id="mike" value="song" v-model="data.interest"/>
        <label for="mike">唱歌</label>
        <br />
        身份:
        <select v-model="data.identity">
            <option value="teacher" selected>教师</option>
            <option value="doctor">医生</option>
            <option value="lawyer">律师</option>
        </select>         
    </form>
</div>
<script type="text/javascript">
    new Vue({
        el: '#example',
        data: {
            data:{
               name:'',
               sex:'',
               interest:[],
               identity:''
            }
        }
    })
</script>

v-for

<template>
    <div id="app">
        <h1>Title</h1>
        <ul>
            <li v-for="item in items" class="item-{{$index}}">
                {{$index}} - {{parentMessess}} - {{item.msg}}
            </li>
        </ul>
    </div>
</template>
 
 
<script type="text/javascript">
    var vm = new Vue({
        el: "#app",
        data: {
            : '前端开发基础技术',
            items:{
                {msg: 'html'}{msg: 'css'},
                {msg: ‘javascript'}
            }
        }
    })
</script>

v-text

v-text 指令可以更新元素的textContent.

<span v-text="msg"></span> <br/>
<span>{{msg}}</span>

v-html

v-html指令更新元素的innerHTML 能解析html标签

<template>
    <div id="app">
        <h1>Title</h1>
        <p v-html="msg"></p>
        <p>{{msg}}</p>
    </div>
</template>
 
 
<script type="text/javascript">
    var vm = new Vue({
        el: "#app",
        data: {
            msg:'<p>效果一样</p>'
        }
    })
</script>

v-bind

v-bind指令用于响应更新HTML特性,将一个或者多个attribute,或者一个组件prop动态绑定到表达式简写为:。

<template>
    <div id="app">
        <h1>Title</h1>
        <div :class="[classA,{classB:isB,classC:isC}]></div>
    </div>
</template>
 
 
<script type="text/javascript">
    var vm = new Vue({
        el: "#app",
        data: {
            classA: 'A',
            isB: false,
            isC: true
        }
    })
</script>

v-on

v-on指令用于绑定事件监听器。事件类型由参数指定。

如果访问原始DOM事件,可以使用$event传入方法 ,简写为@

<template>
    <div id="app">
        <h1>Title</h1>
        <p> {{}} </p>
        <button v-on:click="doThis">doThis</button>
    </div>
</template>
 
 
<script type="text/javascript">
    var vm = new Vue({
        el: "#app",
        data: {
            msg: 'hello world',
        },
        methods: {
            doThis: function(){
                this.msg = 'hello world change !!!'
            }
        }
    })
</script>

v-cloak

解决差值表达式闪烁的问题

<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<style>
        [v-cloak]{
            display: none;
        }
</style>
</head>
 
<body>
   
    <div id="app" v-cloak>{{msg}}</div>
 
    <script>
            new Vue({
                el: '#app',
                data: {
                    msg: '欢迎Vue!'
                }
            })
        </script>
</body>
 
</html>

v-pre

跨过当前的标签不解析

<div id="app">
   <span v-pre>{{msg}} 这句不会编译</span>
 </div>
 <script>
   var app =new Vue({
     el:'#app',
     msg:'this is a message'
   });
 </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值