#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. Хм, я никогда не думал об этом. Это действительно выглядит многообещающе.