使用 Vue 3 框架的单文件组件格式(Single-File Component)编写的,这是Vue.js推荐的代码组织方式。单文件组件通常包括三个主要部分:
<template>
:在这个部分中定义了组件的模板,也就是用户界面的结构和布局。这里使用了Vue的模板语法,包括v-for
、{{ }}
等指令和插值表达式。<script>
:这个部分包含了组件的JavaScript逻辑。在Vue 3中,使用了setup()
函数来设置组件的响应式数据和方法。<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>