美文网首页
Vue.js:方法

Vue.js:方法

作者: yu_liu | 来源:发表于2019-03-09 16:43 被阅读0次

这节主要学习methods属性, 这个名字是固定的,它是一个对象,用于存储各种方法。{{方法名()}}就可以调用相应的方法。

示例

<!DOCTYPE html>
<html class="no-js">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>方法</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <h2>{{message}}</h2>
        <h2>{{greeting('morning')}}</h2>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el: '#app',
            data: {
                message: 'hello vue',
            },
            methods: {
                greeting:function(time){
                    return 'good ' + time + '!';
                }
            }
        })
    </script>
</body>
</html>

如果要在当前对象中拿data的属性,直接使用Vue实例化的对象.name就可以了,调用方法时也是直接拿对应的方法。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Vue的方法练习</title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <h2>{{greeting('Afternoon')}}</h2>
            <h2>{{message}}</h2>
        </div>
        <script>
            var app = new Vue({
                el: '#app',
                data: {
                    message: 'Hello Vue!',
                    name: '软件1721'
                },
                methods: {
                    greeting: function(time) {
                        return 'Good ' + time + '!' + this.name;
                    }
                }
            })
        </script>
    </body>
</html>

v-on指令

分别点击“隐藏/显示”按钮可以切换内容的显示:

<!DOCTYPE html>
<html class="no-js">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>v-on指令练习2-</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        <h2 v-if="show">{{name}}</h2>
        <button @click="handleClick">隐藏/显示</button>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el: '#app',
            data: {
                name: '软件1721',
                show: true,
            },
            methods: {
                handleClick:function() {
                    this.show = !this.show;
                }
            },
        })
    </script>
</body>
</html>

语法糖:v-on:click可以简写为@click

喜欢/不喜欢 练习

<!DOCTYPE html>
<html class="no-js">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>v-on指令练习5-喜欢的练习</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <link rel="stylesheet" href="/vue-basic/css/font-awesome.min.css">
    <style type="text/css">
        .like{
            width: 120px;
            height: 50px;
            color: rgb(234,111,90);
            border-radius: 25px;
            font-size: 14px;
            background-color: #FFF;
            border: 1px solid rgb(234,111,90);
            outline: none;
        }
        .dislike{
            width: 120px;
            height: 50px;
            color: #FFF;
            border-radius: 25px;
            font-size: 14px;
            background-color: rgb(234,111,90);
            border: 1px solid rgb(234,111,90);
            /* 点击取消外边框 */
            outline: none;
        }
    </style>
</head>
<body>
    <div id="app">
        <button class="dislike" v-show="status == false" @click="like">
            <i class="icon-heart-empty" ></i> 喜欢  |  {{number}}
        </button>
        <button class="like" v-show="status" @click="dislike">
                <i class="icon-heart" ></i> 不喜欢  |  {{number}}
        </button>
    </div>
    <script type="text/javascript">
        var app = new Vue({
            el: '#app',
            data: {
                status: true,
                number: 8,
            },
            methods: {
                like:function() {
                    this.status = !this.status;
                    this.number += 1;
                },
                dislike:function() {
                    this.status = !this.status;
                    this.number -= 1;
                }
            },
        })
    </script>
</body>
</html>
GIF.gif

相关文章