• nuxt.js使用ant-design-vue实现评论组件


    前言

    此文为Nuxt引入ant-design-vue+使用评论组件过程记录。

    ant-design-vue

    ant-design-vue是 Ant Design 的 Vue 实现,开发和服务于企业级后台产品。具有丰富的组件,但语法较为滞后,很多地方没有得到同步更新与维护。此次论坛搭建为方便起见使用了该组件库的评论组件。

    官方网址:www.antdv.com/docs/vue/in…

    开源地址:github.com/vueComponen…

    nuxt引入ant-design-vue

     

    1. npm i --save ant-design-vue
    2. 在plugins中创建ant-design-vue.js
    1. plugins/ant-design-vue.js
    2. import Vue from 'vue'
    3. import Antd from 'ant-design-vue'
    4. import 'ant-design-vue/dist/antd.css' // Per Ant Design's docs
    5. Vue.use(Antd)

     3.nuxt.config.js配置

    1. plugins: [
    2. '@/plugins/ant-design-vue'
    3. ],

    评论组件的使用

    文档地址:www.antdv.com/components/…

     

    1. v-if="comments.length"
    2. :data-source="comments"
    3. item-layout="horizontal"
    4. >
    5. <a-list-item slot="renderItem" slot-scope="item" :key="item.id">
    6. <a-comment>
    7. <a slot="author">{{item.author}}a>
    8. <a-avatar
    9. slot="avatar"
    10. src="https://cdn.vuetifyjs.com/images/john.jpg"
    11. alt="User"
    12. />
    13. <p slot="content">
    14. {{item.content}}
    15. p>
    16. <a-tooltip slot="datetime">
    17. <span> 发表于 {{ item.dateTime }}span>
    18. a-tooltip>
    19. <a-tooltip title="Delete" v-if="item.auth === true">//鉴权使用,只有本用户及管理员可以删评论
    20. <a>
    21. <a-icon
    22. type="delete"
    23. color="#1976d2"
    24. @click="deleteComment(item)"
    25. >
    26. a-icon>
    27. a>
    28. a-tooltip>
    29. a-comment>
    30. a-list-item>
    31. <a-comment>
    32. <a-avatar
    33. slot="avatar"
    34. src="https://cdn.vuetifyjs.com/images/john.jpg"
    35. alt="匿名用户"
    36. >
    37. a-avatar>
    38. <div slot="content">
    39. <a-form-item>
    40. <a-textarea :rows="4" :value="value" @change="handleCommentChange">
    41. a-textarea>
    42. a-form-item>
    43. <a-form-item>
    44. <a-button html-type="submit" :loading="submitting" type="primary" @click="handleCommentSubmit">
    45. 发表评论
    46. a-button>
    47. a-form-item>
    48. div>
    49. a-comment>
    50. data(){
    51. return {
    52. value: '',
    53. comments: [],
    54. submitting: false,
    55. }
    56. }
    57. methods: {
    58. async handleCommentSubmit() {
    59. if (!this.value) {
    60. return;
    61. }
    62. if (!this.$store.state.username) {
    63. return this.$router.push('/login');
    64. }
    65. this.submitting = true;
    66. //TODO getdata() from server
    67. this.value = '';
    68. },
    69. handleCommentChange(e) {
    70. this.value = e.target.value;
    71. },
    72. }

     

     

     

  • 相关阅读:
    共码未来 | 多维提升开发技能,玩转各大开发者平台活动
    【JavaScript】一文了解JS的闭包
    defer 延迟调用【GO 基础】
    认识京东联盟API,获取APPkey和APPsecret|直接调用KEY方式
    SolidWorks模型导入到Gazebo中
    kafka如何保证消息不丢?
    IDEA重装后打开的一些设置
    Snipaste 提高十倍生产力工作效率,堪称最强神器
    十、hystrix断路器
    在服务器上搭建Cadence16.6 CIS共享库
  • 原文地址:https://blog.csdn.net/weixin_42232156/article/details/126140675