vue3瀑布流布局(使用 Vue 3 框架的单文件组件格式(Single-File Component)编写的)

使用 Vue 3 框架的单文件组件格式(Single-File Component)编写的,这是Vue.js推荐的代码组织方式。单文件组件通常包括三个主要部分:

  1. <template>:在这个部分中定义了组件的模板,也就是用户界面的结构和布局。这里使用了Vue的模板语法,包括v-for{``{ }}等指令和插值表达式。

  2. <script>:这个部分包含了组件的JavaScript逻辑。在Vue 3中,使用了setup()函数来设置组件的响应式数据和方法。

  3. <style>:这个部分定义了组件的样式,包括CSS规则和样式定义。

废话不多说直接上代码

复制代码
<template>
  <!-- 瀑布流容器 -->
  <div class="waterfall-container">
    <!-- 使用v-for循环遍历itemList中的项目 -->
    <div
      v-for="(item, index) in itemList"
      :key="index"
      class="waterfall-item"
    >
      <!-- 显示项目的图片 -->
      <img :src="item.imageSrc" alt="">
      <!-- 显示项目的标题 -->
      <h2>{{ item.title }}</h2>
      <!-- 显示项目的内容 -->
      <p>{{ item.content }}</p>
    </div>
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    // 使用ref函数创建响应式数据,存储项目列表
    const itemList = ref([
      {
        imageSrc: 'https://pic.imgdb.cn/item/65084fd3204c2e34d3a96817.jpg',
        title: '我是标题1',
        content: '我是内容1',
      },
      {
        imageSrc: 'https://pic.imgdb.cn/item/650850d7204c2e34d3a984ca.jpg',
        title: '我是标题2',
        content: '我是内容2',
      },
      {
        imageSrc: 'https://pic.imgdb.cn/item/64eee7e1661c6c8e54a86a07.jpg',
        title: '我是标题3',
        content: '我是内容3',
      },
      {
        imageSrc: 'https://pic.imgdb.cn/item/65085109204c2e34d3a9933c.jpg',
        title: '我是标题4',
        content: '我是内容4',
      },
      {
        imageSrc: 'https://pic.imgdb.cn/item/65084fd3204c2e34d3a96817.jpg',
        title: '我是标题5',
        content: '我是内容5',
      },
    ]);

    return {
      itemList, // 在setup函数中返回响应式数据
    };
  },
};
</script>

<style>
/* 设置瀑布流容器的样式 */
.waterfall-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); /* 列宽自适应,最小300px,平均分配宽度 */
  gap: 20px; /* 项目之间的间隔 */
}

/* 设置项目样式,如背景色和阴影 */
.waterfall-item {
  background-color: #fff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  padding: 20px;
  text-align: center;
}

/* 设置图片样式,使其适应容器宽度 */
img {
  max-width: 100%;
  height: auto;
}
</style>
相关推荐
JIngJaneIL34 分钟前
远程在线诊疗|在线诊疗|基于java和小程序的在线诊疗系统小程序设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·小程序·毕设·在线诊疗小程序
笙年3 小时前
Vue 作用域插槽
前端·javascript·vue.js
鱼锦0.05 小时前
基于spring+vue把图片文件上传至阿里云oss容器并回显
java·vue.js·spring
zeijiershuai5 小时前
Vue 工程化、ElementPlus 快速入门、ElementPlus 常见组件-表格组件、ElementPlus常见组件-分页条组件
前端·javascript·vue.js
网络点点滴5 小时前
Vue3的生命周期
前端·javascript·vue.js
梵得儿SHI6 小时前
Vue 核心语法之组件基础与通信:从创建到注册的完整指南
前端·javascript·vue.js·组件化开发·全局注册·vue组件的本质·局部注册和异步组件
一颗烂土豆7 小时前
告别 Vue 多分辨率适配烦恼:vfit 让元素定位 “丝滑” 跨设备
前端·vue.js
萌狼蓝天8 小时前
[Vue]性能优化:动态首行与动态列的匹配,表格数据格式处理性能优化
前端·javascript·vue.js·性能优化·ecmascript