当前位置: 首页 > article >正文

【PPTist】开源PPT编辑器初体验

前言:PPTist 是一款基于 Vue3.x + TypeScript 构建的开源的PPT在线编辑器,功能很齐全,体验感很好,下载运行也很方便,没有奇奇怪怪的报错,分享给大家,以后可能会出系列!

下载运行就不说了,很简单方便,而且没有报错。

界面很简洁美观
在这里插入图片描述
另外项目目录也比较清晰,就是传统的 Vue3 项目。学习一个开源项目,最好的学习方式是从某一个功能入手,这一篇咱们就来看一个简单的功能吧,就是【添加幻灯片】功能。
先全局搜索一下 “添加幻灯片”
src/views/Editor/Thumbnails/index.vue 文件中,点击按钮的时候会触发 src/hooks/useSlideHandler.ts 中的 createSlide 方法,用来创建一个空白页并添加到下一页。

// 创建一页空白页并添加到下一页
const createSlide = () => {
  const emptySlide: Slide = {
    id: nanoid(10), // 10位随机数作为幻灯片ID
    elements: [],
    background: {
      type: 'solid',
      color: theme.value.backgroundColor,
    },
  }
  // 创建新页面后,将当前选中元素ID列表清空
  mainStore.setActiveElementIdList([])
  // 添加新页面
  slidesStore.addSlide(emptySlide)
  // 添加快照
  addHistorySnapshot()
}

src/store/slides.ts

addSlide(slide: Slide | Slide[]) {
  const slides = Array.isArray(slide) ? slide : [slide]
  for (const slide of slides) {
    if (slide.sectionTag) delete slide.sectionTag
  }

  // 将新页面添加到当前页面之后
  const addIndex = this.slideIndex + 1
  this.slides.splice(addIndex, 0, ...slides)
  this.slideIndex = addIndex
},

可以看到幻灯片其实是一个数组,逻辑还挺容易看懂的。
然后幻灯片的展示使用的是 Draggable 组件,这个组件是第三方的依赖

import Draggable from 'vuedraggable'

vuedraggable

另外存储数据使用的是 pinia
卡哇伊的标志
在这里插入图片描述
寓意着store中可以存储着多个对象,但是它们的根部又紧密相连~~~~~~


http://www.kler.cn/a/403639.html

相关文章:

  • Android12 的 Vold梳理
  • Kafka Offset 自动提交和手动提交 - 漏消费与重复消费
  • 丹摩|丹摩助力selenium实现大麦网抢票
  • 上海市计算机学会竞赛平台2022年8月月赛丙组屏幕比例
  • uniapp页面样式和布局和nvue教程详解
  • 上海市计算机学会竞赛平台2024年11月月赛丙组添加删除
  • `ls -l ~/.ssh` 命令将列出 `.ssh` 目录中所有文件
  • 【ChatGPT】实现贪吃蛇游戏
  • 【加入默语老师的私域】C#面试题
  • JAVA:探索 PDF 文字提取的技术指南
  • Spring Boot技术在实验室信息管理中的应用
  • php交友源码交友系统源码相亲交友系统源码php社交系统php婚恋源码php社区交友源码vue 仿交友社交语聊技术栈
  • 图文解说:MySQL核心模块知识和流程
  • 持续集成与持续部署:CI/CD简介
  • 机器学习—正则化和偏差或方差
  • 网络安全知识点
  • 网络安全服务(Network Security Services, NSS)
  • 重构代码之内联类
  • uniapp: 微信小程序包体积超过2M的优化方法(主包从2.7M优化到1.5M以内)
  • Selenium + 数据驱动测试:从入门到实战!
  • Chapter 2 - 16. Understanding Congestion in Fibre Channel Fabrics
  • R语言4.3.0安装教程【附安装包】
  • MySql 日期周处理方式
  • Vue3,将普通的组合式API转换为<script setup>形式
  • 树莓派开发扩展十二 -C#编写客户端控制小车 Xamarin.Forms
  • -bash: ./kafka-topics.sh: No such file or directory--解决方案