升级指南

未匹配的标注

升级指南

Inertia.js v1.0 已经发布!🥳

新特性

此版本的重点是简化项目的整体架构,以使 Inertia 更易于维护和使用。

它包含一些破坏性变更,主要涉及包名称和更新的导出名称。本指南将解释如何将您的项目升级到 v1.0。

有关所有更改的完整列表,请参阅发布说明

新依赖项

在之前的 Inertia 版本中,您需要安装多个库,包括核心库 (@inertiajs/inertia)、您选择的适配器 (@inertiajs/inertia-vue|vue3|react|svelte)、进度库 (@inertiajs/progress) 以及如果您使用服务器端渲染,还需要安装服务器库 (@inertiajs/server)。

现在,您只需要安装一个库,即您选择的适配器(Vue、React 或 Svelte),所有其他核心库将自动安装。

首先,删除所有旧的 Inertia 库。

npm remove @inertiajs/inertia @inertiajs/inertia-vue3 @inertiajs/progress @inertiajs/server

然后,安装您选择的新 Inertia 适配器。新适配器库已更名,不再包含 inertia-

npm install @inertiajs/vue3

重命名的导入

接下来,更新项目中所有与 Inertia 相关的导入,使用新适配器库的名称。现在,所有导入都可以从适配器库中使用,这意味着您不再需要从 Inertia 核心库、进度库或服务器库导入任何内容。

此外,一些导出已被重命名,之前已弃用的导出已被删除。例如,Inertia 导出已重命名为 router

以下是所有导入更改的完整列表:

# Vue 2
- import { Inertia } from '@inertiajs/inertia'
- import createServer from '@inertiajs/server'
- import { createInertiaApp } from '@inertiajs/inertia-vue3'
- import { App } from '@inertiajs/inertia-vue3'
- import { app } from '@inertiajs/inertia-vue3'
- import { plugin } from '@inertiajs/inertia-vue3'
- import { InertiaApp } from '@inertiajs/inertia-vue3'
- import { usePage } from '@inertiajs/inertia-vue3'
- import { useForm } from '@inertiajs/inertia-vue3'
- import { useRemember } from '@inertiajs/inertia-vue3'
- import { Head } from '@inertiajs/inertia-vue3'
- import { InertiaHead } from '@inertiajs/inertia-vue3'
- import { Link } from '@inertiajs/inertia-vue3'

# Vue 3
+ import { router } from '@inertiajs/vue3'
+ import createServer from '@inertiajs/vue3/server'
+ import { createInertiaApp } from '@inertiajs/vue3'
+ import { App } from '@inertiajs/vue3'
+ import { usePage } from '@inertiajs/vue3'
+ import { useForm } from '@inertiajs/vue3'
+ import { useRemember } from '@inertiajs/vue3'
+ import { Head } from '@inertiajs/vue3'
+ import { Link } from '@inertiajs/vue3'

注意: 不再可能使用 App 导出手动配置 Inertia。相反,您应该使用 createInertiaApp() 辅助函数。有关更多信息,请参阅客户端设置文档。

进度条

之前,进度指示器作为单独的插件可用(@inertiajs/progress)。现在,默认情况下已安装并启用进度指示器。

如果尚未删除旧的进度库,请执行以下操作:

npm remove @inertiajs/progress

然后,删除 InertiaProgress 导入和 InertiaProgress.init() 调用,因为它们不再需要。

最后,如果您定义了任何自定义进度设置,可以将它们移动到 createInertiaApp() 辅助函数的 progress 属性中。

createInertiaApp({
  progress: {
    color: '#29d',
  },
  // ...
})

如果您使用自定义进度指示器,可以通过将 progress 属性设置为 false 来禁用默认的进度指示器。

createInertiaApp({
  progress: false,
  // ...
})

Setup 方法的参数

我们已经从 createInertiaApp()setup() 方法中删除了以前已弃用的小写 app 参数。现在,请使用 App

createInertiaApp({
  // ...
  setup({ App, props }) {
    // ...
  },
})

简化的 usePage

在 Vue 3 适配器中,我们简化了 usePage() hook,不再需要在 componentpropsurlversion 属性后添加 .value

如果您使用 usePage() hook,请删除所有 .value 的实例。

import { computed } from 'vue'

// 旧的方式
const appName = computed(() => usePage().props.value.appName)

// 新的方式
const appName = computed(() => usePage().props.appName)

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~