어디서나 액세스 할 수 있도록 Nuxt에서 전역 변수를 정의하는 방법

Mojtaba Barari

앱 확장을 시작하면서 큰 문제를 발견했습니다 !! .NET없이 다국어 양방향 앱을 개발 중 i18n입니다. 기본적으로 다음과 같은 언어 json 파일이 있습니다.

{
  "fa":{
    "dir": "rtl",
    // ....
  },
  "en":{
    "dir": "ltr",
    //....
  }
}

nuxtInitServer의 vuex 상태 lang저장합니다 . 하지만 두 가지 문제가 있습니다.

첫째, 글꼴 패밀리를 변경하기 위해 scss 파일에서 액세스하는 방법은 무엇입니까?

둘째, 내 플러그인에서 액세스하는 방법은 무엇입니까? 플러그인 에 관해서 는 여기에 내 설명이 있습니다.

btw, nuxt에서 전역 변수를 정의하여 어디서나 액세스 할 수 있으며 물론 변경 가능합니다 (env와 같은 정적이 아님). 예를 들어 언어를 변경할 때 .js 및 .scss 파일의 현재 언어에 액세스 할 수 있습니다.

여기 업데이트 는 저장에 액세스해야하는 실제 플러그인 코드입니다.

import Vue from 'vue'
import { required, email , alpha , alpha_spaces , numeric , confirmed } from 'vee-validate/dist/rules'
import { extend, ValidationObserver, ValidationProvider, setInteractionMode } from 'vee-validate'
import { store } from 'vuex'

Vue.prototype.$something= function (){
    let lang = store.state.lang
}

setInteractionMode('eager')

extend('required', {
    ...required,
    message: `{_field_} ${$lang.error_required}` // this is were i'm gonna use my vuex state
})
extend('email', email)
extend('alpha', alpha)
extend('numeric', numeric)
extend('alpha_spaces', alpha_spaces)
extend('confirmed', confirmed)
extend("decimal", {
    validate: (value, { decimals = '*', separator = '.' } = {}) => {
        if (value === null || value === undefined || value === '') {
            return {
                valid: false
            };
        }
        if (Number(decimals) === 0) {
            return {
                valid: /^-?\d*$/.test(value),
            };
        }
        const regexPart = decimals === '*' ? '+' : `{1,${decimals}}`;
        const regex = new RegExp(`^[-+]?\\d*(\\${separator}\\d${regexPart})?([eE]{1}[-]?\\d+)?$`);

        return {
            valid: regex.test(value),
        };
    },
    message: '{_field_} ' + ''
})
Vue.component('ValidationProvider', ValidationProvider);
Vue.component("ValidationObserver", ValidationObserver);
토르스텐 콜브
  1. Scss 코드에서 javascript 변수에 액세스 할 수 없습니다. 그러나 각 로케일에 대해 Css 클래스를 정의하고 레이아웃 파일 내에서 계산 된 속성이있는 기본 div에 올바른 클래스를 설정할 수 있습니다.
<template>
  <div :class="containerLangClass">
    <nuxt />
  </div>
</template>
<script>
export default {
  computed: {
    containerLangClass() {
      return "container-" + this.$store.getters.lang;
    }
  }
};
</script>

<style lang="scss">
.container-fa {
  font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
}
.container-en {
  font-family: "Gill Sans", "Gill Sans MT", Calibri, "Trebuchet MS", sans-serif;
}
</style>
  1. 플러그인에서 vuex 스토어를 가져 와서 사용자 지정 방법, 지시문 및 co.kr에서 사용할 수 있습니다. 하지만 플러그인이 생성되기 전에 상점 값에 액세스하고 싶다고 생각합니다.

그래서 당신은 단지 상점을 가져올 수 없습니다

import {store} from './store';

다음과 같은 값을 사용하십시오.

store.getters.lang

이 시점에서 저장소가 초기화되지 않았기 때문입니다.

업데이트 물론 다음과 같은 사용자 지정 함수에서 저장소 게터, 작업 등을 사용할 수 있습니다.

import Vue from "vue";

Vue.prototype.$something = function (){
            
let lang = this.$store.getters.lang; //...etc

        }

업데이트 2 사용자 지정 유효성 검사 메시지에서 상점을 사용하려면 마운트 된 후크에 유효성 검사를 추가하는 믹스 인을 추가 할 수 있습니다. 이 시점에서 vuex 스토어에 대한 모든 액세스 권한이 있습니다.

플러그인 코드 :

import Vue from "vue";
import { extend } from "vee-validate";
import { required } from "vee-validate/dist/rules";

Vue.mixin({
  mounted() {
    extend("required", {
      ...required,
      message: fieldName => {
        return `${fieldName} ${this.$store.getters.$lang.error_required}`;
      }
    });
  }
});

이 코드는 mount가 호출 될 때마다 호출됩니다. 따라서 필요한 페이지에서이 유효성 검사를 사용하는 것이 좋습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

로봇 프레임 워크 리스너에서 전역 변수에 액세스 할 수 있도록 설정

분류에서Dev

새 프로세스 내의 스레드에서 전역 변수에 액세스 할 수 있습니까?

분류에서Dev

전역 변수를 만들거나 다른 파일에서 액세스 할 수있는 방법

분류에서Dev

어디서나 액세스 할 수있는 매크로

분류에서Dev

어디서나 액세스 할 수있는 사용자 별 정보. 보안 방법은?

분류에서Dev

함수 외부에서 변수에 액세스 할 수 있도록하는 방법은 무엇입니까?

분류에서Dev

응용 프로그램 전체에서 액세스 할 수있는 cakephp에서 변수를 정의하는 방법은 무엇입니까?

분류에서Dev

Windows Phone 7에서 페이지 전체에서 버튼에 액세스 할 수 있도록하는 방법

분류에서Dev

어디에서나 액세스 할 수 있도록 디렉터리의 바로 가기 (소프트 링크)를 전역 PATH에 추가

분류에서Dev

클래스 전체에서 변수에 액세스 할 수 있도록하는 방법 (객체 지향 프로그래밍 PHP)

분류에서Dev

전역 변수를 사용하여 사이트 전체에서 Meteor 스키마에 액세스 할 수 있도록합니다.

분류에서Dev

Java의 루프 외부에서 로컬 변수에 액세스 할 수 있도록하는 방법

분류에서Dev

어디서나 구성 요소에 쉽게 액세스 할 수있는 방법이 있습니까?

분류에서Dev

로컬 변수가 나중에 코드에서 정의 되어도 전역 변수에 액세스 할 수없는 이유

분류에서Dev

동일한 이름의 변수를 갖는 정적 함수에서 전역 정적 변수에 액세스하는 방법

분류에서Dev

프로젝트에서 원하는 곳 어디에서나 액세스 할 수 있도록 전 처리기 지시문을 정의하는 방법과 위치는?

분류에서Dev

Ajax JSON 객체를 함수 외부에서 액세스 할 전역 변수에 저장하는 방법

분류에서Dev

컨텍스트에서 전달하거나 (리소스에 액세스 할 수 있도록) 도우미 메서드를 정적으로 만드는 방법에 대해 자세히 알아볼 수있는 곳은 어디입니까?

분류에서Dev

루프 내부에 요소를 생성하고 루프 외부에서 액세스 할 수 있도록 JavaScript의 변수에 저장하는 방법

분류에서Dev

루프 내부에 요소를 생성하고 루프 외부에서 액세스 할 수 있도록 JavaScript의 변수에 저장하는 방법

분류에서Dev

Laravel 5.1 : 한 번에 하나의 계정에 액세스 할 수 있도록 계정 액세스를 제한하는 방법

분류에서Dev

스크립트에서 변수에 액세스 할 수 있도록하는 방법

분류에서Dev

kubernetes의 마스터에서 실행되는 서비스 프록시를 통해 서비스에 액세스 할 수 있도록하는 방법

분류에서Dev

if 문 외부에서 목록에 액세스 할 수 있도록하는 방법은 무엇입니까?

분류에서Dev

Angular는 어디서나 서비스에 액세스 할 수 있도록합니다.

분류에서Dev

이 코드에서 이름에 액세스 할 수 있도록하는 방법

분류에서Dev

함수 호출에서 액세스 할 수있는 RPG 프로그램에서 전역 변수를 어떻게 정의합니까?

분류에서Dev

어디서든 누구나 스크립트를 실행할 수 있도록 허용하는 방법

분류에서Dev

어디서나 액세스 할 수 있도록 Apache2 설정

Related 관련 기사

  1. 1

    로봇 프레임 워크 리스너에서 전역 변수에 액세스 할 수 있도록 설정

  2. 2

    새 프로세스 내의 스레드에서 전역 변수에 액세스 할 수 있습니까?

  3. 3

    전역 변수를 만들거나 다른 파일에서 액세스 할 수있는 방법

  4. 4

    어디서나 액세스 할 수있는 매크로

  5. 5

    어디서나 액세스 할 수있는 사용자 별 정보. 보안 방법은?

  6. 6

    함수 외부에서 변수에 액세스 할 수 있도록하는 방법은 무엇입니까?

  7. 7

    응용 프로그램 전체에서 액세스 할 수있는 cakephp에서 변수를 정의하는 방법은 무엇입니까?

  8. 8

    Windows Phone 7에서 페이지 전체에서 버튼에 액세스 할 수 있도록하는 방법

  9. 9

    어디에서나 액세스 할 수 있도록 디렉터리의 바로 가기 (소프트 링크)를 전역 PATH에 추가

  10. 10

    클래스 전체에서 변수에 액세스 할 수 있도록하는 방법 (객체 지향 프로그래밍 PHP)

  11. 11

    전역 변수를 사용하여 사이트 전체에서 Meteor 스키마에 액세스 할 수 있도록합니다.

  12. 12

    Java의 루프 외부에서 로컬 변수에 액세스 할 수 있도록하는 방법

  13. 13

    어디서나 구성 요소에 쉽게 액세스 할 수있는 방법이 있습니까?

  14. 14

    로컬 변수가 나중에 코드에서 정의 되어도 전역 변수에 액세스 할 수없는 이유

  15. 15

    동일한 이름의 변수를 갖는 정적 함수에서 전역 정적 변수에 액세스하는 방법

  16. 16

    프로젝트에서 원하는 곳 어디에서나 액세스 할 수 있도록 전 처리기 지시문을 정의하는 방법과 위치는?

  17. 17

    Ajax JSON 객체를 함수 외부에서 액세스 할 전역 변수에 저장하는 방법

  18. 18

    컨텍스트에서 전달하거나 (리소스에 액세스 할 수 있도록) 도우미 메서드를 정적으로 만드는 방법에 대해 자세히 알아볼 수있는 곳은 어디입니까?

  19. 19

    루프 내부에 요소를 생성하고 루프 외부에서 액세스 할 수 있도록 JavaScript의 변수에 저장하는 방법

  20. 20

    루프 내부에 요소를 생성하고 루프 외부에서 액세스 할 수 있도록 JavaScript의 변수에 저장하는 방법

  21. 21

    Laravel 5.1 : 한 번에 하나의 계정에 액세스 할 수 있도록 계정 액세스를 제한하는 방법

  22. 22

    스크립트에서 변수에 액세스 할 수 있도록하는 방법

  23. 23

    kubernetes의 마스터에서 실행되는 서비스 프록시를 통해 서비스에 액세스 할 수 있도록하는 방법

  24. 24

    if 문 외부에서 목록에 액세스 할 수 있도록하는 방법은 무엇입니까?

  25. 25

    Angular는 어디서나 서비스에 액세스 할 수 있도록합니다.

  26. 26

    이 코드에서 이름에 액세스 할 수 있도록하는 방법

  27. 27

    함수 호출에서 액세스 할 수있는 RPG 프로그램에서 전역 변수를 어떻게 정의합니까?

  28. 28

    어디서든 누구나 스크립트를 실행할 수 있도록 허용하는 방법

  29. 29

    어디서나 액세스 할 수 있도록 Apache2 설정

뜨겁다태그

보관