Vue 变异方法filter和正则RegExp对评论进行搜索

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script src="vue.js"></script>
    <title id="title">{{title}}</title>
</head>
<body>
<div id="ask"><!--vue不能控制body和html的标签-->
    <ul>
        <li v-for="(v,k) in list">
           {{v.id}} ===== {{v.content}}<button v-on:click="remove(k)">删除</button>
        </li>
    </ul>
    <textarea v-model="content" cols="30" rows="10"></textarea>

    <button v-on:click="push('pre')">发表到前面</button>
    <button v-on:click="push('end')">发表到后面</button>
    

    <button v-on:click="del('first')">删除第一条</button>
    <button v-on:click="del('last')">删除最后一条</button>
    

    <button v-on:click="sort">排序</button>
    <button v-on:click="reverse">反转</button>
    

    <input type="text" v-on:keyup.enter="search" v-model="search_content"><!--绑定键盘回车事件-->
</div>
<script>
    var vue = function (options){new Vue(options)};
    vue({
        el:'#title',
        data:{
            title:'Vue 变异方法filter和正则RegExp对评论进行搜索'
        }
    });
    var app = vue({
        el:'#ask',
        data:{
            search_content:'',
            content:'',
            list:[
                {'id':3,'content':'hello'},
                {'id':5,'content':'简单记录'},
                {'id':2,'content':'个人博客'},
                {'id':1,'content':'学习笔记'},
                {'id':4,'content':'想学什么学什么 '}
            ]
        },
        methods:{
            search(){
                this.list = this.list.filter((item)=>{
                    console.log(this.search_content);
                    var reg = new RegExp(this.search_content,'i');/*创建正则*/
                    return reg.test(item.content);
                })
            },
            reverse(){
                return this.list.reverse();
            },
            sort(){
                this.list.sort(function (a,b) {
                    return a.id>b.id;
                })
            },
            remove(k){
                this.list.splice(k,1)
            },
            push(type){
                var id = this.list.length+1;
                var content_push = {id:id,'content':this.content};
                switch (type) {
                    case 'pre':
                        this.list.unshift(content_push);
                        break;
                    case "end":
                        this.list.push(content_push);
                        break;
                }
                this.content='';
            },
            del(type){
                switch (type) {
                    case 'first':
                        this.list.shift();
                        break;
                    case "last":
                        this.list.pop();
                        break;
                }
            }
        }
    });

</script>
</body>
</html>

 

posted @ 2019-10-09 13:49  Tommy_marc  阅读(585)  评论(0编辑  收藏  举报