methods(方法)

基本用法

1.监听一个按钮的点击事件,设值一个计数器,每次点击都加1:

	<div id="app">
        <h1>点击次数:{{counter}}</h1>
        <button @click="counter++">+1</button>
    </div>
    <script>
    new Vue({
        el:'#app',
        data: {
            counter:0
        },
        methods: {
            
        },
    })
    </script>

运行结果:
在这里插入图片描述
2.@click的表达式可以直接使用JavaScript语句,也可是一个在Vue实例中methods选项内的函数名,比如对上例进行扩展,在增加一个按钮,点击一次,计算器加10:

	<div id="app">
        <h1>点击次数:{{counter}}</h1>
        <button @click="counter++">+1</button>
        <button @click="handleAdd(10)">+10</button>
    </div>
    <script>
    new Vue({
        el:'#app',
        data: {
            counter:0
        },
        methods: {
            handleAdd:function(count){
                count=count||1;
                this.counter+=count;
            }
        },
    })
    </script>

运行结果:
在这里插入图片描述
在methods中定义了我们需要的方法供@click调用,许注意,@click调用方法后可不跟括号‘()’。

methods中的$event参数

Vue提供了一个特殊变量$event,用于访问原生DOM事件,例如下面的实例可以组装链接打开:

<div id="app">
        <div><a href="https://blog.csdn.net/Minniye" @click="handleClick('禁止打开',$event)">打开链接</a></div>
    </div>
    <script>
    new Vue({
        el:'#app',
        methods: {
            handleClick:function(message,event){
                event.preventDefault();
                window.alert(message);
            }
        },
    })
    </script>

运行结果:
在这里插入图片描述

watch(监听属性)

监听数据实例:

<div id="app">
        <h1>{{msg}}</h1>
        <h1>{{msgData}}</h1>
        <input type="text" v-model='msg'>
    </div>
    <script>
    new Vue({
        el:'#app',
        data: {
            msg:'abc',
            msgData:''
        },
        watch:{
            msg:function(val){
                this.msgData=val;
            }
        }
    })
    </script>

运行结果:
在这里插入图片描述

Logo

前往低代码交流专区

更多推荐