rodrigopedra/laravel-history-navigation

由 JavaScript 的 History API 启发的历史导航

v1.2.0 2023-02-17 13:29 UTC

README

由浏览器的 History API 启发的历史导航

composer require rodrigopedra/laravel-history-navigation
  • 版本 1.0.0 支持 Laravel 10.x(因此,需要 PHP 8.1)
  • 版本 0.9.x 支持 Laravel 从版本 6.x 到 9.x

简介

此包旨在模拟浏览器的 History API。

它尝试自动跟踪导航历史,并提供两个全局辅助函数,允许在历史中回退用户。

这个想法是为那些进行深度导航的应用程序提供回退历史导航,例如钻探型数据仪表板,它们并不总是有一个清晰的回退路径。

使用方法

在视图中,您可以使用 navigate_back() 辅助函数作为 a 回退链接/按钮的 href

<a href="{{ navigate_back('/') }}">Go back</a>

参数是默认目的地,如果历史为空,则使用。

还有 navigate_default() 辅助函数。它将检查请求中是否存在 use_default 查询参数,如果存在,则尝试将其重定向为其参数中定义的默认路由。如果查询参数不存在,它将回退到 navigate_back()

配置

您可以通过运行以下命令发布配置

php artisan vendor:publish --provider=RodrigoPedra\\HistoryNavigation\\HistoryNavigationServiceProvider

现在您应该在配置文件夹下有一个名为 navigate-back.php 的文件。下面是默认值

<?php

return [
    'default-url' => '/',
    'history-limit' => 50,
    'skip-patterns' => [],
    'query' => [
        'remove-empty' => true,
        'ignore-parameters' => ['page'],
    ],
];

注意事项

此包依赖于用户的会话,因此如果用户打开了多个选项卡或窗口并在同一应用程序中进行导航,则它将无法按预期工作,因为它将混合不同选项卡/窗口的导航历史。

此包是在一个非常具体的场景下开发的,用于在单个窗口浏览器包装器中运行的内联网应用程序(类似于 electron)。

如今,我不建议在新的项目中采用它,并建议使用浏览器本地的 History API。