Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

오늘은 어제보다 나아지길

[Vue.js] config.globalProperties 사용법 본문

[Vue.js]

[Vue.js] config.globalProperties 사용법

그녕쓰 2021. 3. 2. 10:36

Vue.js 3.0으로 업그레이드되면서 몇몇 가지가 바뀌었는데 

그중 하나가 main.js 에서 전역적으로 사용하는 방법이 바뀌었다.

// vue.js 2.x
// main.js

import axios from 'axios';

Vue.prototype.$axios = axios;

new Vue({
	el:#app,
	components: { App },
	template: '<App/>'
});


// Main.vue

.
.
.
<script>
export default {
	created() {
		console.log(this.$axios);
	}
}
</script>

2.x 버전에선 prototype으로 선언 후 사용하였지만 

이젠 달라졋다.

// vue.js 3.x
// main.js

import App from './App.vue'
import axios from 'axios';

const app = createApp(App);

app.config.globalProperties.$axios = axios;
app.config.globalProperties.$foo = 'bar';

app.mount('#app');

// Main.vue

.
.
.
<script>
export default {
	created() {
		console.log(this.$axios);
		console.log(this.$foo); // bar
	}
}
</script>

3.x 버전부턴 app.config.globalProperties로 전역 설정을 해줘야 가능해진다.

 

참고 : v3.vuejs.org/guide/migration/global-api.html#a-new-global-api-createapp

 

위의 방법 말고 또 다른 방법이 있다.

// vue.js 3.x
// main.js

import App from './App.vue'
import axios from 'axios';

const app = createApp(App);

app.provide('$axios', axios);

app.mount('#app');

// Main.vue

.
.
.
<script>
import { inject } from 'vue'
export default {
	created() {
		
	},
	setup() {
		const $axios = inject('$axios');
		console.log($axios);
    }
}
</script>

provide / inject이라는 새로운 전역 변수 설정이 생겼으며 

inject 주입 시 setup() 함수에서 정의를 해야 한다.

( 기존의 data, method 등의 선언부 들이 setup 메소드 안으로 통합되었다.)

아직 vue.js 3.x에 대해 공부를 안 해서 많은 정보를 알진 못하지만 조금씩 기록하면서 공부를 해야겠다.

 

'[Vue.js]' 카테고리의 다른 글

[Vue.js] Vue.js 2.x 버전 Typescript 적용하기  (0) 2021.05.21
[Vue.js] Vue.js 설치(Mac)  (0) 2021.01.26
Comments