承接 jecovier/laravel-inertia-routes 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jecovier/laravel-inertia-routes

Composer 安装命令:

composer require jecovier/laravel-inertia-routes

包简介

Automatically create routes for any inertia component.

README 文档

README

/**
 * /resources/js/Pages/folder/component.vue
 * http://your-domain.com/folder/component
 */
InertiaRoute::get('folder/component');

/**
 * Change route:
 * /resources/js/Pages/folder/component.vue
 * http://your-domain.com/about
 */
InertiaRoute::get('about', 'folder/component');

/**
 * Automatically:
 * /resources/js/Pages/folder/component.vue
 * http://your-domain.com/folder/component
 */
InertiaRoute::bind('folder');

// change framework
InertiaRoute::vue();
InertiaRoute::react();
InertiaRoute::svelte();

Installation

composer require jecovier/laravel-inertia-routes

Usage

Single component

/**
 * /resources/js/Pages/folder/component.vue
 * http://your-domain.com/folder/component
 */
InertiaRoute::get('folder/component');

/**
 * Change route:
 * /resources/js/Pages/folder/component.vue
 * http://your-domain.com/about
 */
InertiaRoute::get('about', 'folder/component');
InertiaRoute::get('/', 'folder/component');

Also you can use other verbs:

InertiaRoute::get('folder/component');
InertiaRoute::post('folder/component');
InertiaRoute::put('folder/component');
InertiaRoute::delete('folder/component');
InertiaRoute::patch('folder/component');

Bind folder

Bind all components inside a folder:

InertiaRoute::bind('some/folder/');

If you have components like:

resources/js/Pages/components/folder/index.vue
resources/js/Pages/components/folder/about.vue
resources/js/Pages/components/folder/anotherPage.vue

Now you can access them using:

http://yourdomain.com/some/folder/
http://yourdomain.com/some/folder/about
http://yourdomain.com/some/folder/anotherPage

You can change routes for folders using:

InertiaRoute::bind('you/route', 'some/folder/');

IMPORTANT! InertiaRoute::bind use a "catch all" strategy, so put this route at the end of your route file or group.

Parameters

If you want to use route paramaters(without any backend proccess) you could define a route like this:

InertiaRoute::get('/route/{name}', 'folder/component');

And your component will receive parameters as props:

vue:

<script>
export default{
    props: {
        name: { required:true }
    }
}
</script>

svelte:

<script>export let name</script>

Reat:

// I don't know react :(

Also you can use:

InertiaRoute::get('folder/component/{name}');

Middlewares... Prefixes... Can...

InertiaRoute returns a Route object instance, so you can chained other methods:

InertiaRoute::get('/route/{parameter}', 'folder/component')
    ->middleware('validateParameter')
    ->can('viewThis');

404

InertiaRoute verifies if the file exist before try to render it. In case you want to access a non existing component, it will display a 404 page.

Svelte or React

By default InertiaRoute will render Vue files. But, if you are working with React or Svelte, you could easily switch to those frameworks.

In case of React:

InertiaRoute::react();
InertiaRoute::get('path/to/component/{parameter}');

And for Svelte:

InertiaRoute::svelte();
InertiaRoute::get('path/to/component/{parameter}');

Remember to change framework before declare routes.

Change root path

Inertiajs suggests resources/js/Pages as default folder, however, you may be use another path. If that is the case, you can change your root folder with:

InertiaRoute::root('your/new/path');

Consider that InertiaRoute automatically use the laravel folder as root, so the final path will be: /laravel-project-folder/your/new/path/

Contribution

Yes, please. This is a little library make in my spare time, any PR is welcome 🙌.

License

MIT

统计信息

  • 总下载量: 11
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-05-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固