Vue3留言墙项目——主体部分静态、mock

主体头部

在这里插入图片描述在这里插入图片描述

主体部分显示的内容,根据头部点击的是留言墙还是照片墙的按钮,显示不同的内容。

将照片墙和留言墙要渲染的数据抽取到一个js中,在导入的Main.vue(主体页面)中渲染。

将页面中的文字记录在src/utils/data.js

// 墙的性质
// 这样记录后wallType[0]为留言墙内容 wallType[1]为照片墙内容
export const wallType = [
  {
   
    name: "留言墙",
    slogan: "很多事情值得记录,当然也值得回味。",
  },
  {
   
    name: "照片墙",
    slogan: "很多事情值得记录,当然也值得回味。",
  },
];

// 分类标签
// label[0]为留言墙内容 label[1]为照片墙内容
export const label = [
  [
    "留言",
    "目标",
    "理想",
    "过去",
    "将来",
    "爱情",
    "亲情",
    "秘密",
    "信条",
    "无题",
  ],
  [
    "我",
    "ta",
    "喜欢的",
    "有意义的",
    "值得纪念的",
    "母校",
    "生活",
    "天空",
    "我在的城市",
    "大海",
  ],
];

根据id渲染照片墙或留言墙& 点击标签样式切换 实现这两个功能的Main.vue代码为:

<template>
  <div class="main">
    <div class="message">
      <p class="name">{
  { wallType[id].name }}</p>
      <p class="slogan">{
  { wallType[id].slogan }}</p>
    </div>

    <div class="labels">
      <ul>
        <li :class="{ liselected: liIndex == -1 }" @click="changeIndex(-1)">
          全部
        </li>
        <li
          v-for="(item, index) in label[id]"
          :key="index"
          @click="changeIndex(index)"
          :class="{ liselected: liIndex == index }"
        >
          {
  { item }}
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
import {
      wallType, label } from "@/utils/data";
import {
      ref } from "vue";
export default {
     
  setup() {
     
    let id = ref(0); // 留言墙id为0 之后做事件使得id为1
    let liIndex = ref(-1); // 当前选中状态小li的下标
    const changeIndex = (index) => {
     
      liIndex.value = index;
    };
    return {
     
      wallType,
      label,
      id,
      liIndex,
      changeIndex,
    };
  },
};
</script>

<style lang="scss" scoped>
.main {
     
  margin-top: 52px;
  .message {
     
    padding-top: 46px;
    .name {
     
      font-size: 56px;
      color: $gray-1;
      font-weight: 600;
    }
    .slogan {
     
      font-size: 14px;
      color: $gray-3;
      padding-bottom: 44px;
    }
  }

  .labels 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lalaxuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值