迁移

PrimeVue v4 的迁移指南。

在 PrimeTek,自 2008 年以来,我们一直在开发 UI 组件库。Web 技术不断进步,因此,我们必须对库进行现代化和更新,以保持相关性。PrimeVue v4 是下一代版本,它完全拥抱现代 Web API,并消除了像传统样式模式这样的技术债务。每个组件都经过了审查和增强。作为我们对产品和社区承诺的一部分,PrimeVue v3 将继续维护到 2024 年底。

最值得注意的功能是新的样式模式实现。之前的迭代在名为primevue-sass-theme的外部仓库中使用 SASS,这需要编译一个theme.css文件。此文件必须包含在应用程序中,并且需要在运行时进行交换,以执行暗模式或主颜色更改等基本任务。在 v4 中,样式模式现在是核心的一部分,根本不使用 SASS,并且创建了一个基于新设计令牌的架构,该架构充分利用了 CSS 变量。新的 API 比传统的样式模式更现代、更优越。

一些组件的名称已更改为更常见的替代方案,例如,Popover取代了OverlayPanelInputSwitch现在称为ToggleSwitch。每个组件都已审查,以确保 CSS 类名和 PT 部分之间命名一致。一个例子是 Select 组件的 option 元素,它使用 p-select-option 作为类名。

组件在其他组件中得到了更多利用,例如,Dialog 关闭按钮实际上不是 PrimeVue 按钮,因此可以使用 closeButtonProps 来启用按钮的轮廓、凸起等功能。当组件使用另一个组件时,在 v3 中,pt 部分会导致混淆,为了防止这种情况,添加了 pc 前缀,以表明 PT 部分实际上是一个 PrimeVue 组件,而不是一个简单的 DOM 元素。这尤其有用,因为 PT 允许将任意属性传递给 DOM 元素,而如果该元素实际上是一个 PrimeVue 组件,则也可以传递 props

向后兼容和重大更改的列表。

重命名的组件

旧名称已弃用,但仍然可以使用,请迁移到新的导入路径,例如,primevue/calendar变为primevue/datepicker

  • Calendar -> DatePicker.
  • Dropdown -> Select.
  • InputSwitch -> ToggleSwitch.
  • OverlayPanel -> Popover.
  • Sidebar -> Drawer.

已弃用的组件

由于其功能由其他组件提供,因此已弃用的组件。

  • Chips | 使用启用multiple且禁用typeahead的 AutoComplete。
  • TabMenu | 使用不带面板的 Tabs。
  • Steps | 使用不带面板的 Stepper。
  • InlineMessage | 使用 Message 组件。
  • BadgeDirective | 改用 OverlayBadge。
  • TabView | 使用新的 Tabs 组件。
  • Accordion | 与新的 AccordionHeaderAccordionContent 组件一起使用。

重要工单

包含有关组件内部更改详细信息的工单。

SASS 主题

样式模式主题已从头开始基于全新的架构重新实现。theme.cssprimevue/resources 不再存在,因此需要删除对这些资产的任何导入。如果您有 v3 的自定义主题,则需要使用新的 API 重新创建主题。有关详细信息,请参阅样式模式的自定义部分。

已删除的组件

  • TriStateCheckbox | 使用带有不确定选项的复选框。
  • DataViewLayoutOptions | 改用 SelectButton。

已删除的 API

  • switchTheme 函数,使用 usePreset 等新 API 来进行动态主题切换。

已重新定位的 API

  • 来自 primevue/api 的导入已重新定位到 @primevue/core/api

已删除的文件

  • primevue/resources 路径下的主题,必须迁移到新的样式模式。
  • 位于 primevue/passthrough/tailwind 的传统 Tailwind 预设,请迁移到 Tailwind 预设项目。

消息和内联消息

由于与Message重叠,因此InlineMessage已弃用。Message的间距、可关闭和生命周期属性发生了重大更改,以提供InlineMessage功能。默认边距已删除,默认情况下可关闭为 false,并且消息不会自动消失。

PT 部分名称

实验性的 PassThrough 功能尚未准备好投入生产,某些组件的 PT 部分名称因与 CSS 类对齐而发生了更改。如果组件元素是另一个 PrimeVue 组件,则添加 pc 前缀以进行指示。请查看组件的直通部分以获取新的 API。无样式模式的 Tailwind CSS 预设尚未更新到 v4。

已删除的功能

  • Sidebar/Drawer size 属性已删除,请使用响应式类实用程序作为替代,演示中有新的示例。
  • Rating cancel 属性已删除,因为切换所选星号值会清除它。
  • Inplace closable 已删除,改为使用模板和 closeCallback 属性。

已删除的样式类

  • .p-link,请在链接模式下使用按钮。
  • .p-highlight,每个组件都有自己的类,例如 .p-select-option-selected
  • .p-fluid,请使用受支持组件的新内置 fluid 属性或 Fluid 组件。

Nuxt 模块

nuxt-primevue 模块已被新的 @primevue/nuxt-module 模块取代。旧模块仍为 v3 用户维护。