Vue中一个新闻类型的弹框Demo

1.设计弹框组件

首先,创建一个名为**NewsPopup**的弹框组件,用于显示新闻内容。组件的模板包括一个标题和新闻列表。

html 复制代码
<template>
  <div class="news-popup">
    <h2>{{ title }}</h2>
    <ul>
      <li v-for="news in newsList" :key="news.id">
        <h3>{{ news.title }}</h3>
        <p>{{ news.description }}</p>
      </li>
    </ul>
    <button @click="closePopup">关闭</button>
  </div>
</template>

<script>
export default {
  props: {
    title: String, // 弹框标题
    newsList: Array // 新闻列表
  },
  methods: {
    closePopup() {
      this.$emit('close'); // 触发关闭事件
    }
  }
}
</script>

<style scoped>
.news-popup {
  background: #fff;
  padding: 20px;
}
</style>

当然,这里的模板只是一个小Demo,比较粗糙,实际中具体的需求还得根据各位的需要去调整。比如,你想将这里的关闭按钮功能换成通过点击图标去关闭也是可以的。例如:

html 复制代码
<i class="el-icon-circle-close" @click="具体的方法"></i>

这里用到了elment-ui组件库中的图标。

2.在父组件中引用弹窗组件

javascript 复制代码
<template>
  <div>
    <button @click="showPopup = true">显示新闻弹框</button>
    <news-popup v-if="showPopup" :title="popupTitle" :newsList="popupNewsList" @close="showPopup = false"></news-popup>
  </div>
</template>

<script>
import NewsPopup from './NewsPopup'

export default {
  components: {
    NewsPopup
  },
  data() {
    return {
      showPopup: false,
      popupTitle: '',
      popupNewsList: []
    }
  },
  methods: {
    loadNews() {
      // 发送请求获取新闻数据
      // 以下为示例数据
      this.popupTitle = '最新新闻';
      this.popupNewsList = [
        { id: 1, title: '新闻标题1', description: '新闻内容1' },
        { id: 2, title: '新闻标题2', description: '新闻内容2' },
        { id: 3, title: '新闻标题3', description: '新闻内容3' }
      ];
    }
  }
}
</script>

在上述代码中,通过**showPopup** 变量控制弹框的显示与隐藏,通过**@close** 事件监听关闭按钮的点击事件,并将**showPopup** 设置为**false** 来关闭弹框。loadNews() 方法用于加载新闻数据,在示例中直接在方法内给**popupTitle** 和**popupNewsList**赋值,实际应用中可以根据实际情况发送异步请求获取数据。

相关推荐
ym hyd 11117 分钟前
汽车零部件缺陷管理系统源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·汽车·毕设
孔令飞1 小时前
Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中指针引用Go中
前端
可乐鸡翅yeah_1 小时前
hls.js 缓冲区参数 maxBufferLength、maxBufferSize 通俗讲解与业务调参
开发语言·javascript·ios·音视频·safari·m3u8
溪语流沙1 小时前
【Web全栈进阶】PostgreSQL上手:Docker跑库 + 把早报站从SQLite迁过去
前端·docker·postgresql
IT_陈寒1 小时前
SpringBoot自动配置的坑:你以为的捷径可能是弯路
前端·人工智能·后端
paopaokaka_luck1 小时前
高校社团管理(AI辅助任务分配、协同过滤算法推荐、ECharts数据可视化、活动参与闭环、校园交流与反馈、器材借还管理)
java·前端·javascript·spring boot·数据分析·echarts
vx_Biye_Design1 小时前
springboot小区管理系统68491-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
500841 小时前
React Native for OpenHarmony 实战:三方库 react-native-volume-control 的鸿蒙化适配指南
javascript·react native·react.js·electron·harmonyos
薛一半1 小时前
React-Redux三重优化实战揭秘
javascript·vue.js·react.js
专业程序开发源1 小时前
springboot外卖系统94294-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计