2017-12-15 4 views
0

현재 Laravel/Vue.js 프로젝트에서 동일한 데이터 (예 : 운영 체제의 정적 목록) 둘 다 백엔드와 프론트 엔드에 있습니다. 지금까지 생각한 다른 옵션은 다음과 같습니다.Laravel/Vue.js 프로젝트에서 정적/구성 데이터를 공유하는 가장 좋은 방법은 무엇입니까

  • 내 Laravel 및 vue.js 프로젝트에 중복 데이터가 있습니다.
  • 은 API
  • 공유를 통해 프론트 엔드로 데이터를로드하는 일반적인 정적 구성 파일을 통해 그리고 아마도 세 번째 옵션은 보이지

처리 시간 (현재 사용 웹팩)에서 뷰에 데이터를 프리로드 데이터 데이터의 중복 및 불필요한 요청을 할 필요가 없으며 기존 도구로 수행 할 수 있는지 궁금해 할 때 가장 좋습니다.

+0

어떻게 당신이 "최고"정의합니까? 이것은 나에게 매우 주관적이거나 의견에 기초한 소리입니다. –

+0

안녕하세요 @DavidStockinger - 분명 거기 있어야합니다. 여기서 가장 좋은 점은 데이터 복제를 피하고 첫 번째 옵션과 같이 두 곳에서 유지해야한다는 것입니다. 두 번째 옵션은 응용 프로그램의 크기에 따라 과도하게 필요할 수있는 정적 데이터에 대한 API 요청을 수행해야하므로 두 옵션 모두 성능이 떨어집니다. – PSEUDOH

답변

1

가장 좋은 방법은 앱의 특성에 달려 있습니다.

나는 일반적으로 "Laravel way"이므로 # 3을 선호합니다. .env 파일에 접두사가 붙은 변수 MIX_을 사용하고 에 설명 된대로 process.env.MIX_VARIABLE_NAME을 사용하여 프론트 엔드에서 액세스하십시오. 배열이 지원되지 않습니다 있지만이 envhelper

, 당신은 항상 백엔드에서 그들을 만들 수 있습니다 사용하여 백엔드에서 그들을 액세스와 프론트 엔드과 같이 :

$config = [  
    env('KEY1') => [ 
     env('KEY_ONE') => env('VALUE_ONE'),  
     env('KEY_TWO') => env('VALUE_TWO') 
    ], 
    ... 
}; 
+0

고마워요 @ 파라. 나는 혼합 변수에 env 변수를 주입하는이 방법을 알지 못했다. 이 방법을 어느 정도로 사용할 수 있습니까? 단일 값 및 "환경"구성에 도움이되는 것을 볼 수 있지만 정적 인 비 환경 구성 데이터에 대해서는 제한적으로 보입니다. 또한 내가 아는 한 배열은 dotenv에서 지원하지 않습니다. – PSEUDOH

+0

배열을 만드는 방법에 대한 답을 업데이트했습니다. 이들은 기본적으로 지원되지 않지만 단일 값으로 구성하는 것은 매우 쉽습니다. 변수에 접두사를 사용하여 어떤 부모와 관련이 있는지 확인할 수도 있습니다. – Paras

+0

Thanks @ Paras. 나는이 솔루션을 실현 가능한 솔루션으로 받아 들였고 새로운 것을 배웠습니다. 필자는 애플리케이션에 필요한 모든 정적 데이터를 포함하고 Vue.js에서 사용하기 위해 애플리케이션 헤더에 임베드하는 정적 js 파일을 생성하여이 접근 방식을 결정했습니다. 내가 궁금해하는 궁극적 인 해결책은 laravel 구성 파일의 배열을 평가하고 Vue.js 응용 프로그램에서 사용할 수 있도록 js 파일로 번역/삽입하는 webpack 프리 로더의 개발이 필요합니다. – PSEUDOH