vue组件实现发表评论功能

 更新时间:2022年04月15日 17:16:07   作者:ljs_coding  
这篇文章主要为大家详细介绍了vue组件实现发表评论功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

今天看了vue相关的视频,所以跟着做一个小demo把知识串联起来,内容很简单但是也算是学习道路上的一点进步。

1 思路分析

发表评论模块写入一个组件,提高复用性。
关键点:

1)、子组件通过localStorage向父组件传值
2)、子组件有自己的data存储user和content,即评论人和评论内容,也就是dom元素绑定的数据。
3)、点击‘发表评论’后,首先是将各条评论存入localStorage,然后通过在组件出绑定的函数调用父组件中的loadComments()加载评论。
4)、vue生命周期的熟悉。在created()中写入loadComments(),每次页面加载就会载入评论数据。

2 源代码

需要vue.js和bootstrap.js两个文件

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="../lib/vue.js"></script>
    <link rel="stylesheet" href="../lib/bootstrap.css">
    <style>
    li{
        list-style:none;
    }
    </style>
</head>
<body>
    <div id="app">
        <com @func="loadComments"></com>
        <ul class="list-group">
            <li class="list-group-item" v-for="item in list">
                {{item.content}}<span class="badge">{{item.user}}</span>
            </li>
        </ul>
    </div>
        <!-- 评论区组件 -->
    <template id="tmp">
        <div>
            <div class="form-group"><label>评论人</label><input class="form-control" id="user" v-model:value="user"/></div>
             <div class="form-group"><label>评论内容</label><input class="form-control" id="content" v-model:value="content"/></div>   
                <div><input type="button" class="btn btn-primary" value="发表评论" @click="postComments"/></div>
        </div>
    </template>
    <script>
    var tmp={
        template:"#tmp",
        data:function(){
            return {
                user:'',
                content:''
            }
        },
        methods:{
            postComments(){
                var comment={user:this.user,content:this.content};
                var list=JSON.parse(localStorage.getItem('cmts')||'[]');
                list.unshift(comment);
                localStorage.setItem('cmts',JSON.stringify(list));//数组对象和字符串相互转换的过程
                this.user='';
                this.content='';
                this.$emit('func');
            }
        }
    }
    var vm=new Vue({
        el:"#app",
        data:{
            list:[]
        },
        created(){
           this.loadComments();
        },
        methods:{
            loadComments(){
                this.list=JSON.parse(localStorage.getItem('cmts')||'[]');
            }
        },
        components:{
            'com':tmp
        }
        
    });
    </script>
</body>
</html>

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

相关文章

  • Vue全家桶入门基础教程

    Vue全家桶入门基础教程

    Vue 是一套用于构建用户界面的渐进式框架,和React,都自称自己只关注视图层,全家桶对于开发一个完整的中大型单页面应用项目所必须的所必须的插件和框架,本文给大家分享Vue全家桶入门基础教程,感兴趣的朋友一起看看吧
    2021-05-05
  • 详解Nuxt内导航栏的两种实现方式

    详解Nuxt内导航栏的两种实现方式

    这篇文章主要介绍了详解Nuxt内导航栏的两种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • vue+element创建动态的form表单及动态生成表格的行和列

    vue+element创建动态的form表单及动态生成表格的行和列

    这篇文章主要介绍了vue+element创建动态的form表单及动态生成表格的行和列 ,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • vue中插槽整理及用法分析

    vue中插槽整理及用法分析

    在本篇文章里小编给大家整理的是一篇关于vue中插槽整理及用法分析内容,对此有兴趣的朋友们可以跟着学习下。
    2021-12-12
  • Vue vant-ui框架实现上拉加载下拉刷新功能

    Vue vant-ui框架实现上拉加载下拉刷新功能

    功能需求——获取后端接口返回的数据,实现列表数据上滑加载更多下一页数据,下拉数据刷新功能,结合vant-ui框架实现。可直接参考使用
    2022-09-09
  • Vue获取HTMLCollection列表的children时结果为undefined问题

    Vue获取HTMLCollection列表的children时结果为undefined问题

    这篇文章主要介绍了Vue获取HTMLCollection列表的children时结果为undefined问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Vue中代码编辑器与实时预览功能

    Vue中代码编辑器与实时预览功能

    CodeMirror提供了强大的代码编辑功能,而Vue.js使得组件的创建和数据绑定变得非常简单,当用户编辑代码时,实时预览会根据代码的变化进行更新,从而为用户提供了一个交互式的编程环境,这篇文章主要介绍了Vue中如何进行代码编辑器与实时预览,需要的朋友可以参考下
    2023-10-10
  • vue3页面加载完成后如何获取宽度、高度

    vue3页面加载完成后如何获取宽度、高度

    这篇文章主要介绍了vue3页面加载完成后如何获取宽度、高度问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • VuePress 快速踩坑小结

    VuePress 快速踩坑小结

    VuePress 可以让您非常方便的在 Markdown 文档中编写 Vue 代码,这篇文章主要介绍了VuePress 快速踩坑小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • vue el-input设置必填提示功能(单个与多个)

    vue el-input设置必填提示功能(单个与多个)

    有的功能需要设置必填项,当然也需要判断是不是添上了,下面这篇文章主要给大家介绍了关于vue el-input设置必填提示功能(单个与多个)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02

最新评论