Vue.js指令(1)

v-cloak

解决差值表达式的闪烁问题
所有使用v-cloak 的元素,都将 display:none

<p v-clock> {{msg}}</p>    

v-text

它和v-cloak的区别:

1、没有闪烁问题
2、{{msg}} 的前后可以添加任意内容,只替换占位符的内容。而v-text会覆盖元素中原本的内容

<h4 v-text="msg"></h4>

v-html

div中渲染的占位符需要是一个html标签时使用

<div v-html="msg"></div>

v-bind

用于绑定属性的指令

<input type="button" vaule="按钮" v-bind:title="mytitle">

data:{
    mytitle:"要显示的内容"
}

v-bind 可以简写为一个英文冒号
v-bind 会把后面的内容当做html去解析

v-on

用于绑定事件的指令,比如点击事件

<input type="button" vaule="按钮" v-on:click="show">
//触发click事件,就会执行show方法,所以在methods中定义该方法
methods:{
    show:function(){
        alert('Hello')
    }
}

事件修饰符

.prevent 阻止默认事件
.capture 添加事件侦听器时使用事件捕获模式
.self 只当事件在该元素本身触发时触发回调
.once 事件只触发一次
.stop 阻止冒泡
<body>
<div id="app">
    <!-- .stop点击事件 -->
    <div class="inner" @click="div1Handler">
        <input type="button" value="戳我" @click.stop="btnHandler">
    </div>
    <!-- .prevent 阻止默认行为 -->
    <a href="http://www.baidu.com"  @click.prevent="linkclick">百度一下</a>
    <!-- .capture 捕获 -->
    <div class="inner" @click.capture="div2Handler">
        <input type="button" value="戳我" @click.stop="btnHandler">
    </div>
    <!-- .self 只有点击自己的元素,事件才会触发,冒泡不会被触发 -->
    <div class="inner" @click.self="div1Handler">
        <input type="button" value="戳我" @click.stop="btnHandler">
    </div>
        <!-- 修饰符可以连用 -->
    <a href="http://www.baidu.com"  @click.once.prevent="linkclick">百度一下</a>
</div>


<script>

    var vm = new Vue({
        el: '#app',
        data: {},
        methods: {

            div1Handler() {
                console.log('inner div 的点击事件')
            },
            btnHandler() {
                console.log('btn div 点击事件')
            },
            linkclick (){
                console.log('出发了link 点击事件')
            },
            div2Handler(){
                console.log('prevent 捕获点击事件')
            }
        }
    });
</script>
</body>
v-model 双向数据绑定
<div id="app">

    <h4> {{ msg }}</h4>

    <input type="text" v-bind:value="msg" style="height: 200px; width: 200px;">
    <input type="text" v-model:value="msg" sytle="width:200px;">
</div>

<SCRIpt>
    var vm = new Vue({
        el: "#app",
        data: {
            msg: '演示效果'
        },
        methods: {

        },
    })
</SCRIpt>
</body>

v-bind 只能单向绑定 M—>V
v-model 只能运用在表单元素中

未完待续…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值