vue实现发表评论功能

本文实例为大家分享了vue实现发表评论的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <link rel="stylesheet" href="bootstrap-3.3.7.css" />
        <title></title>
    </head>
    <script src="vue-2.4.0.js"></script>
    <body>
    <div id="app">
        <ctm @func="show"></ctm>
        <ul class="list-group">
            <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="tmp1">
         <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" class="btn-primary" value="发表评论" @click="postComment"/>
             </div>
         </div>
     </template>
     <script>
            var com={
                template:'#tmp1',
                data(){
                    return{
                        user:'',
                        content:''
                    }
                },
                methods:{
                    postComment(){
                        //得到的先摆出来
                        var comments={id:Date.now(),user:this.user,content:this.content}
                        //获取之前列表所有的内容,由字符串形式转换成对象形式
                        var list=JSON.parse(localStorage.getItem('cmt')||'[]')
                        //往list列表里面追加
                        list.unshift(comments)
                        //然后存到localStorage里面去,转化为字符串形式
                        localStorage.setItem('cmt',JSON.stringify(list))
                        this.user=this.content=''
                        this.$emit('func')
                    }
                }
            }
               // 创建 Vue 实例,得到 ViewModel
               var vm = new Vue({
                 el: '#app',
                 data: {
                     list:[
                        {id:Date.now(),user:'小小',content:'天生我材必有用'},
                        {id:Date.now(),user:'小小1',content:'天生我材'},
                    ]    
                 },
                //使用生命周期函数,created函数已经把data和methods创建好了,必须用this
                //需要自动刷新,所以要用到父组件为子组件传递方法
                created(){
                    this.show()
                },
                methods: {
                    show(){
                        //显示,先获取localStorage的内容,转为对象
                        var list=JSON.parse(localStorage.getItem('cmt')||'[]')
                        this.list=list
                    }
                    },
                components:{
                    'ctm':com
                }
                })
    </script>
    </body>
</html>

效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Vue.js实现文章评论和回复评论功能

    本来想把这个页面用jade渲染出来.评论部分用vue,但是想了想觉得麻烦,最后还是整个用vue的组件搞定他吧. 先上在线demo:http://jsbin.com/ceqifo/1/edit?js,output 再上效果图 可直接评论,点击别人的评论能回复别人的评论. html <div id="comment"> <article-content v-bind:article="article"></article-content&g

  • Vue实现简单的发表评论功能

    本文实例为大家分享了Vue实现简单的发表评论功能的具体代码,供大家参考,具体内容如下 1.这是我在学习中的实例,有些的不足的地方,还望各位大佬指点,感谢哦~ 2.发表评论的效果图 点击"发表"之后的效果(每条评论之后点击"删除"可以删掉这一整条评论~) 3.完整代码展示(我html结构写的比较乱,这里提醒大家一下,没有定义类的div是可以删掉的,我是因为方便写样式所以多加了div) 还是要提醒一下,不要忘记引入vue.js,目录记得根据自己存放的位置改 <!D

  • Vue组件实现评论区功能

    本文实例为大家分享了Vue组件实现评论区的具体代码,供大家参考,具体内容如下 实现代码 <!DOCTYPE html> <html lang="en"> <head>     <meta charset="utf-8">     <meta name="viewport" content="width=device-width, inital-scale=1.0">

  • vue开发实现评论列表

    本文实例为大家分享了vue开发实现评论列表的具体代码,供大家参考,具体内容如下 index.html <!DOCTYPE html> <html>   <head>     <meta charset="utf-8">     <meta name="viewport" content="width=device-width,initial-scale=1.0">     <lin

  • vue组件实现发表评论功能

    本文实例为大家分享了vue组件实现发表评论的具体代码,供大家参考,具体内容如下 今天看了vue相关的视频,所以跟着做一个小demo把知识串联起来,内容很简单但是也算是学习道路上的一点进步. 1 思路分析 发表评论模块写入一个组件,提高复用性.关键点: 1).子组件通过localStorage向父组件传值2).子组件有自己的data存储user和content,即评论人和评论内容,也就是dom元素绑定的数据.3).点击‘发表评论’后,首先是将各条评论存入localStorage,然后通过在组件出绑

  • vue实现文章评论和回复列表

    本文实例为大家分享了vue实现文章评论和回复列表的具体代码,供大家参考,具体内容如下 效果预览: 父组件: <template>   <div class="comment-reply">     <div       v-for="(item, index) in articleLists"       :key="index"       class="article-list"     &g

  • Vuepress 搭建带评论功能的静态博客的实现

    vuepress 是 Vue 驱动的静态站点生成工具 本文仅介绍,搭建静态博客的过程,具体教程及文档请点击进入 vuepress中文网 点击查看项目代码 vuepress初始化 下面初始化 # 将 github 新创建的仓库克隆到本地 git clone git@github.com:zhb333/readme-blog.git # 进入项目 cd readme-blog # npm 初始化, 按照提示回车 npm init # 安装 vuepress npm i vuepress -D # 安

  • VUE+Java实现评论回复功能

    背景 最近需要做一个多级评论的功能,技术路线:VUE(Element)+Java(SpringBoot) 效果 后台 SQL Java Controller /**   * 根据关联id获取评论信息   * @param relationId 关联id   * @param type 类型   * @return: com.harvey.result.ResultSupport<java.lang.Object>   * @date: 2020/12/10 14:37   */  @GetMa

  • vue实现评论列表

    本文实例为大家分享了vue实现评论列表的具体代码,供大家参考,具体内容如下 案例数据使用localStorage持久性存储 全局过滤器实现时间格式化 代码部分 <!DOCTYPE html> <html lang="zh">     <head>         <meta charset="UTF-8">         <meta name="viewport" content="

  • vue实现评论列表功能

    具体代码如下所示: <!DOCTYPE html> <html> <head> <title>简易评论列表</title> <meta charset="utf-8"> <link rel="stylesheet" href="node_modules\bootstrap\dist\css\bootstrap.css" rel="external nofoll

随机推荐