PHPackages                             lars-t/yii2-vuejs-frontend - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. lars-t/yii2-vuejs-frontend

ActiveYii2-extension[Framework](/categories/framework)

lars-t/yii2-vuejs-frontend
==========================

Yii2 Vuejs frontend drop-in replacement, no more need for pjax

v1.0.4(4y ago)51.2k1MITPHP

Since Nov 21Pushed 4y ago2 watchersCompare

[ Source](https://github.com/lars-t/yii2-vuejs-frontend)[ Packagist](https://packagist.org/packages/lars-t/yii2-vuejs-frontend)[ RSS](/packages/lars-t-yii2-vuejs-frontend/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (5)Used By (0)

Yii2 Vuejs Frontend
===================

[](#yii2-vuejs-frontend)

Yii2 Vuejs frontend. No more need for pjax and faster rendering.

Installation
------------

[](#installation)

The preferred way to install this extension is through [composer](http://getcomposer.org/download/).

Either run

```
php composer.phar require --prefer-dist lars-t/yii2-vuejs-frontend "*"

```

or add

```
"lars-t/yii2-vuejs-frontend": "*"

```

to the require section of your `composer.json` file.

Usage
-----

[](#usage)

Once the extension is installed, simply use it in your code by :

Extend your ActiveRecord class

```
class YourClass extends \larst\vuefrontend\VueActiveRecord
or for yii2-bootstrap
class YourClass extends \larst\vuefrontend\VueBootstrapActiveRecord

```

Inserting Vue-widget around your forms

```

```

Set the fieldclass in your form

```
'fieldClass' => 'larst\vuefrontend\VueActiveField'
or for yii2-bootstrap
'fieldClass' => 'larst\vuefrontend\VueBootstrapActiveField'

```

and let Vue know to use the submithandler within your form

```
'options' => ['v-on:submit' => new yii\web\JsExpression("submitHandler")]

```

VeeValidate will be used by default. To disable VeeValidate, set in the inputOptions of your field: 'veeValidate' =&gt; false. Set enableClientValidation to false in your form, to disable jquery clientvalidation. All yii2-validators are converted automagically to v-validate if possible (still some work todo here).

example yii form

```
$form = ActiveForm::begin([
            'enableClientScript' => false,
            'fieldClass' => 'larst\vuefrontend\VueBootstrapActiveField',
            'options' => ['v-on:submit' => new yii\web\JsExpression("submitHandler")]
    ]);

```

In your controller

```
if (Yii::$app->request->isVuejs) {  // when you did not implement VueRequest use: if (Yii::$app->request->headers->get('X-VUEJS', false)) {
    $response = Yii::$app->response;
    $response->format = \yii\web\Response::FORMAT_JSON;
    return [
        'model' => $model->toVueArray(),                                                  // javascript object for model
        'flashes' => Yii::$app->session->getAllFlashes(),                                 // pass flashes to noty
        'form' => ['action' => \yii\helpers\Url::to(['update', 'id' => $model->id])],     // set form action
        'history' => ['location' => \yii\helpers\Url::to(['update', 'id' => $model->id])] // use pushstate history
    ];
}

```

example yii gridview

```
            \larst\vuefrontend\Vue::begin([
        'jsName' => 'nameVm',
        'data' => [
            'model' => $dataProvider->getVueModels(),
            'gridReload' => 0,
            'gridMethod' => 'get',
            'gridUrl' => yii\helpers\Url::to(['someview/index']), // dynamic url for grid
            'gridIndex' => yii\helpers\Url::to(['someview/index']), // default url for grid
            'summary' => $dataProvider->renderSummary(),
        ],
        'watch' => [
            'gridReload' => new \yii\web\JsExpression('function(){this.gridHandler()}'),
        ],
    ]);

            \larst\vuefrontend\VueGridView::widget([
                'dataProvider' => $dataProvider,
                'modelClass'=> \frontend\models\SomeModel::class,

```

In your controller for grid

```

if (Yii::$app->request->isVuejs) {
            $response = Yii::$app->response;
            $response->format = \yii\web\Response::FORMAT_JSON;
            return [
                'model' => $dataProvider->getVueModels(), // javascript object for model
                'flashes' => Yii::$app->session->getAllFlashes(), // pass flashes to toastr

            ];
}

```

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~284 days

Total

4

Last Release

1510d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/923b374d946a0fdb1a82dab9808455384ad3f7e6b4a4751c19233c5dddc4a23c?d=identicon)[lars-t](/maintainers/lars-t)

---

Top Contributors

[![lars-t](https://avatars.githubusercontent.com/u/7504335?v=4)](https://github.com/lars-t "lars-t (18 commits)")

---

Tags

yii2extensionvueVue.jsyii2-vuejs

### Embed Badge

![Health badge](/badges/lars-t-yii2-vuejs-frontend/health.svg)

```
[![Health](https://phpackages.com/badges/lars-t-yii2-vuejs-frontend/health.svg)](https://phpackages.com/packages/lars-t-yii2-vuejs-frontend)
```

###  Alternatives

[skeeks/cms

SkeekS CMS — control panel and tools based on php framework Yii2

13825.6k47](/packages/skeeks-cms)[colee/yii2-vue

Vue.js library for Yii2 framework

1241.2k1](/packages/colee-yii2-vue)[aki/yii2-app-vue

Yii 2 Basic Project Template width VueJs

151.3k](/packages/aki-yii2-app-vue)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
