Перевод данных laravel в состояние vuex без дополнительного запроса ajax?

#javascript #php #laravel #vue.js

#javascript #php #ларавель #vue.js

Вопрос:

в моих приложениях, чтобы получать глобальные данные из laravel в мои компоненты vue, у меня было промежуточное ПО маршрута, где я получаю глобальные данные из своих запросов eloquent, затем я поделился этими данными со своими представлениями и передал данные в качестве реквизита в каждый компонент, пока это работает очень хорошо, но может стать немного сложно, когда у меня есть вложенные компоненты (один компонент внутри другого), очевидно, я думал, что наличие глобального модуля vuex решит эту проблему.

Я мог бы вызвать действие vuex, которое могло бы отправлять ajax-запрос к моей конечной точке глобальных переменных и заполнять мое состояние каждый раз при создании экземпляра vue, но это означало бы дополнительный ajax-запрос к моему бэкэнду, которого я обычно избегаю.

Моя вторая идея заключается в наличии компонента navbar, который запрашивает ajax для извлечения глобальных значений на подключенном крючке, этот компонент теоретически будет загружен первым и заполнит мое состояние, не уверен, что это сработает, если честно.

Есть какие-нибудь идеи?

Комментарии:

1. Как насчет того, если вы просто передадите сериализованные данные в виде JSON в своем представлении блейда в JS-скрипте. Итак, на ваш взгляд, вы могли бы просто установить глобальную переменную, что-то вроде этого: <script> window.customData = @json($customData) }}; </script> затем вы можете вызвать мутацию Vuex в каком-нибудь файле JS boostrap (или где вам удобно), который может получить эти глобально доступные данные и перенести их в ваше состояние. Это сводит на нет необходимость во втором запросе. Я знаю, что некоторые люди не слишком любят загрязнять глобальное пространство имен, но, если делать это осторожно, я нахожу, что иногда это очень полезно.

2. Хм, я никогда не думал об этом. Это действительно выглядит многообещающе.