VUE基本指令v-html、v-text、v-cloak、v-once、v-pro、v-on

1、v-html、v-text、{{}}

上面三种都是渲染文本的方法,使用场景的区别

v-text和{{}}渲染结果类似,都是以文本类型进行渲染

区别:

1、{{}}在渲染结果之前,会有编译之前的文本显示,v-text没有这种现象

2、{{}}更加灵活,中间是可以添加内容的,v-text只能渲染data中的数据,中间不允许插入内容

 <h1 v-text = "a">数值不显示</h1>
        <h1 >数值是{{a}}---</h1>

3、{{}}和v-text的渲染方式和v-html有本质的不同,v-html会识别模板

<div id="app">
        <p v-text = "a">数值不显示</p>
        <p >数值是{{a}}---</p>
        <div v-html="b"></div>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vue = new Vue({
            el : "#app",
            data : {
                a : 100,
                b : "<h1>v-html</h1>"
            }
        })
    </script>

2、v-cloak

v-cloak指令的作用是Vue示例渲染后关联结束

{{}}插值语法在遇到网络延迟的时候会显示编译之前的文本

可以使用v-cloak结合css解决{{}}渲染难题

<style>
    [v-cloak]{
        display: none;
    }
</style>
<body>
    <div id="app">
        <p v-cloak>{{a}}</p>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vue = new Vue({
            el : "#app",
            data : {
                a : 100
            }
        })
    </script>
</body>

[v-cloak]css选择器是html结构中有v-cloak的属性,有这个属性设置display:none;,又因为v-cloak指令在Vue的实例加载完之后关联结束,所以就需要这个元素的隐藏状态,元素就会显示,这样造成的结果要么显示空白,要么显示编译后的文本

3、v-once

v-once的作用是只会渲染对应文本一次,数据跟新不会引起视图更新,目的是为了优化页面性能

<div id="app">
        <p v-once>{{a}}</p>
        <button @click="add">++</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vue = new Vue({
            el : "#app",
            data : {
                a : 100
            },
            methods:{
                add(){
                    this.a++;
                    console.log(this.a)
                }
            }
        })
    </script>

v-once使用场景:没有动态的元素内容,比如一些文章,固定标题

4、v-pre  跳过编译的过程直接显示元素内部的文本,特点是跳过大量的没有指令的节点

 <p v-pre>{{a}}</p>

浏览器显示的就是没有编译之前的文本内容,v-pre属性的优点,优化页面的加载性能

5、v-on

v-on的作用是给元素添加监听事件,可简写为@

JavaScript元素的事件监听都可以在Vue中使用

JavaScript事件监听和Vue事件监听
JavaScriptonclick

ondblclick

onmouseenter

onmouseleave

onmousemove

onmouseoutonbluronfocusonkeydown  
Vuev-on:click || @clickv-on:dblclick || @dblclickv-on:mouseenter || @mouseenterv-on:mouseleave || @mouseleavev-on:mousemove || @mousemovev-on:mouseout || @mouseoutv-on:blur || @blurv-on:focus || @focusv-on:keydown || @keydown  
<div id="app">
        <p >{{a}}</p>
        <button @click="add">++</button>
        <button v-on:click="minus">--</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vue = new Vue({
            el : "#app",
            data : {
                a : 100
            },
            methods:{
                add(){
                    this.a++;
                    console.log(this.a)
                },
                minus(){
                    this.a--
                }
            }
        })
    </script>

 Vue 方法必须写在 methods 里

原生的JavaScript事件方法不能和vue混用

同名方法 后面的会覆盖前面的

methods:{
                add(){
                    this.a++;
                    console.log(this.a)
                },
                add(){
                    this.a +=10
                },
                minus(){
                    this.a--
                }
            }

a每次会加10

方法中传入参数

<div id="app">
        <p >{{a}}</p>
        <button @click="add(5)">++</button>
        <button v-on:click="minus(5)">--</button>
    </div>
    <script src="js/vue.js"></script>
    <script>
        var vue = new Vue({
            el : "#app",
            data : {
                a : 100
            },
            methods:{
                add(num){
                    this.a += num;
                    console.log(this.a)
                },
               
                minus(num){
                    this.a -= num;
                }
            }
        })
    </script>

如果方法中没有传入值,默认输入会有该方法的事件参数

<button @click="add">点击加1</button>
//方法名称
methods:{
    add(event) {
        console.log(event)
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值