この記事では主に、簡単な Vue コメント フレームワークの実装 (親コンポーネントの実装) を紹介します。
最近見た要件:
コメント機能を実装し、ページにコメントリストを表示することを要求する
対応するモジュールのコンポーネント化を実装する
発行者、公開時間、コンテンツを表示する
一見すると難しいようには見えませんが、具体的な実装ではまだいくつかの問題が発生します。また、vue を使うのが初めてなので、ドキュメントを読むと戸惑います。早速、各モジュールがどのように実装されているかを分析してみましょう。
ソースコードアドレス
コメントフォームコード:
<!-- 文档结构区开始 --> <template> <p id="comment" > <Userp @transferUser="getInput" ></Userp> <Commentp :List="List"></Commentp> <Pagep @transferUser="getPage" :totalCount="totalCount" :currentPage="currentPage"></Pagep> </p> </template> <!-- 文档结构区结束 -->
<!-- js 控制区开始 --> <script> //引入组件 commentInput、commentList、pagination import Userp from './commentInput.vue' import Pagep from './pagination.vue' import Commentp from './commentList.vue' export default { //声明组件名 name: 'comment', //包含实例可用组件的哈希表 components: { Userp, Pagep, Commentp }, //声明组件参数 data() { return { totalCount: 0, currentPage: 1, pagesize: 3, totalData: [], List: [], } }, methods: { //显示评论列表信息的方法 getInput(msg) { //将评论信息保存到评论数组里 this.totalData.push({ text: msg }) //计算评论信息总条数长度 this.totalCount = this.totalData.length //判断评论总数是否大于单页显示条数 if (this.totalCount <= this.pagesize) { // 显示所有评论 this.List = this.totalData } else { // 截取totalData中 this.totalCount - this.pagesize 后面的元素进行显示 this.List = this.totalData.slice(this.totalCount - this.pagesize) } //点击评论按钮,默认跳转显示第一页内容 this.currentPage = 1 //评论列表倒序显示,即最新评论,显示在最上面 this.List.reverse() }, // 计算评论列表每一页的显示内容 getPage(curr, size) { this.currentPage = curr if (this.totalCount <= this.pagesize) { //显示所有评论 this.List = this.totalData } else { var start = this.totalCount - this.currentPage * this.pagesize if (start < 0) { start = 0 } // 截取totalData中 [start, start + this.pagesize] 位元素进行显示 this.List = this.totalData.slice(start, start + this.pagesize) } //评论列表倒序显示,即最新评论,显示在最上面 this.List.reverse() } }, } </script> <!-- js 控制区结束 -->
以上は皆さんのためにまとめたもので、今後皆さんのお役に立てれば幸いです。
関連記事:
JavaScriptで赤いエンベロープを取得するWebページを実装する方法
以上がVueを使用してコメントフレームワークを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。