rusya_mahin_page
@rusya_mahin_page
WiRight - это все

Возможна ли реинициализация Vuejs на статических данных php?

Суть такова

Есть мини сайт, html которого полностью строится на php (используется yii2 фреймворк)
После загрузки сайта в ход вступает Vuejs

Так вот, хочется чтобы Vuejs смог работать с данными которые уже отдал Php, а не делать еще ajax запрос

Ведь на момент инициализации VueJs уже все данные есть

Сталкивался ли кто-либо с подобной хотелкой?_)
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
delphinpro
@delphinpro
frontend developer
Обычная хотелка при скрещивании php с vue =)
Я толкаю массив данных в глобальный объект

Где на странице:

<script type="text/javascript">
  window.__STATE__ = <?= json_encode($allData) ?>;
</script>


В vue компонентах

created () {
  if (window.__STATE__ && window.__STATE__.myData) {
    this.myData = window.__STATE__.myData;
  } else {
    axios.get( .... )
  }
}


При использовании Vuex все еще проще, единственная проверка при инициализации стора.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
wagoodoogoo
@wagoodoogoo
prestashop, webix, phalcon, vue, slim, craft cms
data: function () {
            return {
                tokenKey: {{ tokenKey }},
                tokenVal: {{ tokenVal }},
            }
        },

{{ tokenKey }} и {{ tokenVal }} подставляется шаблоном volt, из php, к примеру
php делает html, а в нём запускается js
Ответ написан
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Где-то во view
$this->registerJs("
    var myVueData = " . yii\helpers\Json::encode($model->attributes) . ";
");


Можно через виджет подключать, будут те же тапки, только как-то так
$this->view->registerJs("
    var myVueData = " . yii\helpers\Json::encode($this->data) . ";
");
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы