脚手架编写vue项目(评论管理)

第一步,拆分组件

共拆分为4个组件

App.vue 中初步布局,引入 commentAdd 组件和 commentList 组件,写入:

<template>
  <div id="app">
    <header>请发表你的评论</header>
    <div class="container">
      <div class="row">
        <div class="col-md-4">
          <commentAdd/>
        </div>
        <div class="col-md-8">
          <commentList/>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
import commentAdd from "./components/commentAdd";
import commentList from "./components/commentList";

export default {
  name: "App",
  components: {
    commentAdd,
    commentList,
  },
  data: {
    comments: [
      {
        username: "lisa",
        content: "这部电影很好看",
      },
      {
        username: "jack",
        content: "这部电影不好看",
      },
    ],
  },
};
</script>

<style>
header {
  width: 100%;
  height: 300px;
  background: #ddd;
  text-align: center;
  line-height: 300px;
  font-size: 70px;
}
.container {
  padding-top: 30px;
}
</style>

第二步,实现静态组件

① 引入 bootstrap.css 文件,可放在 static 目录下并在 index.html 文件中引入

② 分别编写 commentAdd ,commentList,commentItem ,完成静态页面

第三步,动态渲染数据

在根组件 App.vue 中定义 data

然后通过 commentList 组件标签,将数据传给 commetList,再传给 commentItem 组件标签

commentItem 标签渲染后的结果是:

第四步,添加评论实现

在 App.vue 中定义添加评论方法 addComment,并将这个方法通过组件标签传给 commentAdd 组件对象,commentAdd 收集输入的数据,点击提交时调用这个方法将输入的数据添加到comments 中

第五步:删除指定评论实现

① 根据下标删除,所以点击删除按钮时,需要传入所删除的 index

② App.vue 中 定义一个删除评论方法,并通过组件标签传给 commentList,commentList 再传给 commentItem

③ 删除之前使用 window.confirm() 和用户确定是否删除

④ 若全部评论列表全部删除,为空,提示“暂无评论”

 

posted @ 2021-02-01 23:54  shanlu  阅读(347)  评论(0编辑  收藏  举报