• vue实现一个评论列表


    <!DOCTYPE html>
    <html>
        <head>
            <title>简易评论列表</title>
            <meta charset="utf-8">
            <link rel="stylesheet" href="node_modulesootstrapdistcssootstrap.css">
        </head>
        <body>
            <div id="app">
                <ul class="list-group">
                    <!-- 为事件绑定别称时不要使用驼峰命名 -->
                    <box @plocalcoments="localComents"></box>
                    <li class="list-group-item" v-for="item in list" :key="item.id">
                        <span class="badge">评论人:  {{item.user}}</span>
                        {{item.content}}
                    </li>
                </ul>
            </div>
            <template id="temp">
                <div>
                    <div class="form-group">
                        <label>评论人:</label>
                        <input type="text" class="form-control" v-model="user">
                    </div>
                    <div class="form-group">
                        <label>评论内容:</label>
                        <textarea class="form-control" v-model="content"></textarea>
                    </div>
                    <div class="form-group">
                        <input type="button" value="发表评论" class="btn btn-primary" @click="add">
                    </div>
                </div>
            </template>
        </body>
        <script src="node_modulesvuedistvue.js"></script>
        <script>
            let commentBox = {//定义评论组件
                data(){//进行数据的绑定,记住组件内的数据是一个方法
                    return{
                        user:'',
                        content:''
                    }
                },
                template:"#temp",
                methods:{
                    add(){//评论添加函数
                        //获取当前评论
                        let comment = {id:Date.now(),user:this.user,content:this.content};
                        //从localStorage读取列表
                        let list = JSON.parse(localStorage.getItem('cmts')|| '[]');//若不存在cmts则返回空数组,避免json解析出错
                        if(comment.user&&comment.content)//进行判空
                        list.unshift(comment);
                        localStorage.setItem('cmts',JSON.stringify(list));
                        this.user=this.content='';//清空评论列表
                        //利用$emit()方法来调用父组件的方法
                        this.$emit('plocalcoments');
                    }
                }
            }
            let vm = new Vue({
                el:"#app",
                data:{
                    list:[]
                },
                components:{
                    box:commentBox
                },
                created(){
                    //实例创建后加载评论
                    this.localComents();
                },
                methods:{
                    localComents(){
                        let list = localStorage.getItem('cmts'||'[]');//若不存在cmts则返回空数组,避免json解析出错
                        this.list = JSON.parse(list);//刷新数据
                    }
                }
            });
        </script>
    </html> 
    <!DOCTYPE html>
    <html>
        <head>
            <title>简易评论列表</title>
            <meta charset="utf-8">
            <link rel="stylesheet" href="node_modulesootstrapdistcssootstrap.css">
        </head>
        <body>
            <div id="app">
                <ul class="list-group">
                    <!-- 为事件绑定别称时不要使用驼峰命名 -->
                    <box @plocalcoments="localComents"></box>
                    <li class="list-group-item" v-for="item in list" :key="item.id">
                        <span class="badge">评论人:  {{item.user}}</span>
                        {{item.content}}
                    </li>
                </ul>
            </div>
            <template id="temp">
                <div>
                    <div class="form-group">
                        <label>评论人:</label>
                        <input type="text" class="form-control" v-model="user">
                    </div>
                    <div class="form-group">
                        <label>评论内容:</label>
                        <textarea class="form-control" v-model="content"></textarea>
                    </div>
                    <div class="form-group">
                        <input type="button" value="发表评论" class="btn btn-primary" @click="add">
                    </div>
                </div>
            </template>
        </body>
        <script src="node_modulesvuedistvue.js"></script>
        <script>
            let commentBox = {//定义评论组件
                data(){//进行数据的绑定,记住组件内的数据是一个方法
                    return{
                        user:'',
                        content:''
                    }
                },
                template:"#temp",
                methods:{
                    add(){//评论添加函数
                        //获取当前评论
                        let comment = {id:Date.now(),user:this.user,content:this.content};
                        //从localStorage读取列表
                        let list = JSON.parse(localStorage.getItem('cmts')|| '[]');//若不存在cmts则返回空数组,避免json解析出错
                        if(comment.user&&comment.content)//进行判空
                        list.unshift(comment);
                        localStorage.setItem('cmts',JSON.stringify(list));
                        this.user=this.content='';//清空评论列表
                        //利用$emit()方法来调用父组件的方法
                        this.$emit('plocalcoments');
                    }
                }
            }
            let vm = new Vue({
                el:"#app",
                data:{
                    list:[]
                },
                components:{
                    box:commentBox
                },
                created(){
                    //实例创建后加载评论
                    this.localComents();
                },
                methods:{
                    localComents(){
                        let list = localStorage.getItem('cmts'||'[]');//若不存在cmts则返回空数组,避免json解析出错
                        this.list = JSON.parse(list);//刷新数据
                    }
                }
            });
        </script>
    </html> 

      效果图:

  • 相关阅读:
    如何用grunt压缩文件
    nodejs 下载,安装,测试(windows环境下)
    INNODB和MYISAM
    HashMap和HashTable
    平衡二叉树(AVL)
    二叉排序树删除
    二叉排序树的创建和遍历
    二叉排序树基础
    赫夫曼树
    堆排序
  • 原文地址:https://www.cnblogs.com/angle-xiu/p/11736880.html
Copyright © 2020-2023  润新知