定制 lootmarket/laravel-vue-blade-component 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

lootmarket/laravel-vue-blade-component

Composer 安装命令:

composer require lootmarket/laravel-vue-blade-component

包简介

Jankless Vue Components in Laravel Blade Templates

README 文档

README

What is Laravel Vue Blade Directive?

Originally inspired by Faking Server-Side Rendering With Vue.js and Laravel by Anthony Gore, Laravel Vue Blade Directive package is meant to provide tools to build static PHP and Vue Templates in tandem.

This is not meant to replace a full SSR application, but to facilitate jankless Vue Components within Blade Templates. For example, a dynamically updated sidebar component, that is statically rendered by PHP on first load.

The goal instead is to be capable of writing a single Component in a blade file, include it with @vueComponent(sidebar) and have it dynamically produce both the static PHP, and the vuejs template. This will then cleanly hydrate on the Vue instance with no jank.

Proof Of Concept Demo

Original POC Repo

Example Of Jankless Vue Component

Installation

You can install the package via composer:

composer require lootmarket/laravel-vue-blade-component

Provider

Then add the ServiceProvider to your config/app.php file:

'providers' => [
    ...

    LootMarket\VueComponent\VueComponentServiceProvider::class

    ...
];

How to Use Laravel Vue Blade Directive

Guides

  1. A Simple Vue Instance
  2. Toggling an Element with v-if && v-show

Documentation

Super lighteweight documentation below. Please let us know if there's something more descriptive you needed.

@vueComponent(<component-name>, <optional path>)

Blade Directive for rendering our Vue Components.

component-name file name of the component to be rendered.

path optionally provide a path to the component if nested in a subfolder.

usage example:

@vueComponent(App)

this loads resources/views/App.blade.php

@vueComponent(App, vue/routes)

this loads resources/views/vue/routes/App.blade.php

Templates loaded via @vueComponent will have $vue passed to them as a boolean. Additionally, they will be pushed to a stack called vue

@vue(<jsVariable>, <phpVariable>)

Blade Directive for displaying {{ variableFromVueJS }} or $phpVariable written to dom. This is used within a @vueComponent file.

If $vue is true, will simply echo out the php variable passed. If $vue is false, will echo out a string to be interpreted within a javascript template.

usage example:

@vue('$store.state.username', $initialState['username'])

When used within a @vueComponent() template, it will return:

the result of <?php echo $initialState['username'] ?> to the dom.

the string {{ $store.state.username }} to the js template.

This allows us to declare a vuex variable in vue template, and echo out the initial state to the server rendered php.

@v(<jsVariableString>)

A simple blade directive for taking a string, and echoing it with {{ string }} to the dom. This allows us to easily write in js variables for our vue templates.

This is used by @vue(), but can be called directly if needed.

usage example:

@v($store.state.username)

this will simply return the string {{ $store.state.username }} to be used within vue.

@stack('vue')

This is a native function with Laravel 5.4 Blades - it will render out the js template for each component passed to @vueComponent()

Each component is only rendered once, not multiple times if done in a loop.

About LootMarket

LootMarket is a development team based in Toronto, Ontario focused on creating great experiences around esports. In our quest for the ultimate PHP & Vue experience, we've created this.

License

The MIT License (MIT). Please see License File for more information.

lootmarket/laravel-vue-blade-component 适用场景与选型建议

lootmarket/laravel-vue-blade-component 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.29k 次下载、GitHub Stars 达 22, 最近一次更新时间为 2017 年 08 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「lootmarket」 「laravel-vue-blade-component」 「laravel-vue」 「jankless」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 lootmarket/laravel-vue-blade-component 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 lootmarket/laravel-vue-blade-component 我们能提供哪些服务?
定制开发 / 二次开发

基于 lootmarket/laravel-vue-blade-component 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

  • Stars: 22
  • Watchers: 4
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2017-08-08