美文网首页从0开始学vuejsvuejs
vuejs响应用户事件-如点击

vuejs响应用户事件-如点击

作者: webCoder | 来源:发表于2016-01-29 17:27 被阅读18737次

    上一篇文章,介绍了如何通过vue.js实现绑定列表数据,这篇文章将在上一篇的基础介绍如何响应用户的点击事件。

    需求:
    页面上的列表原先有3个,我们想点击一次添加一条记录,也可以在头和尾删除数据;
    我们也可以删除我们想删除的任意一行记录;
    如果是用传统的jquery操作,页面中js会特别多,而且操作也很麻烦。
    

    这里用vue.js就非常简单。

    • 我们先看页面效果:
    页面初始化.png 末尾增加一项.png 删除项.png
    • 再来看代码:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="x-ua-compatible" content="ie=edge">
        <title>demo04</title>
        <link rel="stylesheet" href="../css/base/bootstrap.min.css">
        <link rel="stylesheet" href="../css/base/common.css">
    </head>
    <body>
    
        <div class="container mt15" id="ul-lists">
            <ul class="list-group" v-for="item in items">
              <li class="list-group-item">
                <span class="label label-default label-pill pull-right" v-on:click="removeTodo($index)">×</span>
                {{item.text}}&emsp;{{$index}}
              </li>
            </ul>
            <p class="mt15">
                <button type="button" class="btn btn-info" v-on:click="addAtLast($index)">在末尾增加一项</button>
                <button type="button" class="btn btn-secondary" v-on:click="deleteAtTop($index)">删除第一项</button>
                <button type="button" class="btn btn-secondary" v-on:click="deleteAtBottom($index)">删除最后一项</button>
            </p>
        </div>
    
        <script src="../js/base/vue.js"></script>   
        <script src="../js/base/jquery.min.js"></script>
        <script src="../js/base/bootstrap.min.js"></script>
        <script>
            new Vue({
              el: '#ul-lists',
              data: {
                items: [
                  { text: 'item' },
                  { text: 'item' },
                  { text: 'item' }
                ]
              },
              methods: {
                removeTodo: function (index){
                  this.items.splice(index, 1)
                },
                addAtLast: function(index){
                  this.items.push({ text: 'item' })
                },
                deleteAtTop: function(index){
                    this.items.shift();
                },
                deleteAtBottom: function(index){
                    this.items.pop();
                }
              }
            });
        </script>
    </body>
    </html>
    

    在上面的代码中,我们主要是通过方法来管理Items这个数据,从而实现页面上的交互。

    splice、push、shift、pop的用法和在js中一样。
    

    因为这里的例子都不难,就不详细说了,大家可以照着上面的代码试试。

    相关文章

      网友评论

        本文标题:vuejs响应用户事件-如点击

        本文链接:https://www.haomeiwen.com/subject/cfvjkttx.html