@vue/language-service 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/data/language-blocks/en.json +626 -0
  3. package/data/language-blocks/fr.json +626 -0
  4. package/data/language-blocks/ja.json +626 -0
  5. package/data/language-blocks/ko.json +626 -0
  6. package/data/language-blocks/zh-cn.json +626 -0
  7. package/data/language-blocks/zh-tw.json +626 -0
  8. package/data/model-modifiers/en.json +104 -0
  9. package/data/model-modifiers/fr.json +104 -0
  10. package/data/model-modifiers/ja.json +104 -0
  11. package/data/model-modifiers/ko.json +104 -0
  12. package/data/model-modifiers/zh-cn.json +104 -0
  13. package/data/model-modifiers/zh-tw.json +104 -0
  14. package/data/template/en.json +866 -0
  15. package/data/template/fr.json +866 -0
  16. package/data/template/ja.json +866 -0
  17. package/data/template/ko.json +866 -0
  18. package/data/template/zh-cn.json +866 -0
  19. package/data/template/zh-tw.json +866 -0
  20. package/out/helpers.d.ts +15 -0
  21. package/out/helpers.js +246 -0
  22. package/out/ideFeatures/nameCasing.d.ts +13 -0
  23. package/out/ideFeatures/nameCasing.js +173 -0
  24. package/out/index.d.ts +5 -0
  25. package/out/index.js +24 -0
  26. package/out/languageService.d.ts +9 -0
  27. package/out/languageService.js +243 -0
  28. package/out/plugins/data.d.ts +4 -0
  29. package/out/plugins/data.js +90 -0
  30. package/out/plugins/vue-autoinsert-dotvalue.d.ts +7 -0
  31. package/out/plugins/vue-autoinsert-dotvalue.js +157 -0
  32. package/out/plugins/vue-autoinsert-parentheses.d.ts +3 -0
  33. package/out/plugins/vue-autoinsert-parentheses.js +67 -0
  34. package/out/plugins/vue-autoinsert-space.d.ts +3 -0
  35. package/out/plugins/vue-autoinsert-space.js +30 -0
  36. package/out/plugins/vue-codelens-references.d.ts +2 -0
  37. package/out/plugins/vue-codelens-references.js +53 -0
  38. package/out/plugins/vue-template.d.ts +10 -0
  39. package/out/plugins/vue-template.js +538 -0
  40. package/out/plugins/vue-twoslash-queries.d.ts +3 -0
  41. package/out/plugins/vue-twoslash-queries.js +59 -0
  42. package/out/plugins/vue-visualize-hidden-callback-param.d.ts +3 -0
  43. package/out/plugins/vue-visualize-hidden-callback-param.js +42 -0
  44. package/out/plugins/vue.d.ts +8 -0
  45. package/out/plugins/vue.js +137 -0
  46. package/out/types.d.ts +10 -0
  47. package/out/types.js +31 -0
  48. package/package.json +44 -0
@@ -0,0 +1,626 @@
1
+ {
2
+ "version": 1.1,
3
+ "tags": [
4
+ {
5
+ "name": "template",
6
+ "attributes": [
7
+ {
8
+ "name": "src",
9
+ "description": {
10
+ "kind": "markdown",
11
+ "value": "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
12
+ },
13
+ "references": [
14
+ {
15
+ "name": "en",
16
+ "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
17
+ },
18
+ {
19
+ "name": "zh-cn",
20
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
21
+ },
22
+ {
23
+ "name": "ja",
24
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
25
+ },
26
+ {
27
+ "name": "ua",
28
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
29
+ },
30
+ {
31
+ "name": "fr",
32
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
33
+ },
34
+ {
35
+ "name": "ko",
36
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
37
+ }
38
+ ]
39
+ },
40
+ {
41
+ "name": "lang",
42
+ "description": {
43
+ "kind": "markdown",
44
+ "value": "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n"
45
+ },
46
+ "values": [
47
+ {
48
+ "name": "html"
49
+ },
50
+ {
51
+ "name": "pug"
52
+ }
53
+ ],
54
+ "references": [
55
+ {
56
+ "name": "en",
57
+ "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
58
+ },
59
+ {
60
+ "name": "zh-cn",
61
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
62
+ },
63
+ {
64
+ "name": "ja",
65
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
66
+ },
67
+ {
68
+ "name": "ua",
69
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
70
+ },
71
+ {
72
+ "name": "fr",
73
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
74
+ },
75
+ {
76
+ "name": "ko",
77
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
78
+ }
79
+ ]
80
+ }
81
+ ],
82
+ "description": {
83
+ "kind": "markdown",
84
+ "value": "\n- 각 `*.vue` 파일은 최상위 `<template>` 블록을 하나만 포함할 수 있습니다.\n\n- 컨텐츠는 추출되어 `@vue/compiler-dom`으로 전달되고,\n JavaScript 렌더 함수로 사전 컴파일되며,\n 내보낸 컴포넌트에 `render` 옵션으로 첨부됩니다.\n"
85
+ },
86
+ "references": [
87
+ {
88
+ "name": "en",
89
+ "url": "https://vuejs.org/api/sfc-spec.html#template"
90
+ },
91
+ {
92
+ "name": "zh-cn",
93
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#template"
94
+ },
95
+ {
96
+ "name": "ja",
97
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#template"
98
+ },
99
+ {
100
+ "name": "ua",
101
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#template"
102
+ },
103
+ {
104
+ "name": "fr",
105
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#template"
106
+ },
107
+ {
108
+ "name": "ko",
109
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#template"
110
+ }
111
+ ]
112
+ },
113
+ {
114
+ "name": "script",
115
+ "attributes": [
116
+ {
117
+ "name": "src",
118
+ "description": {
119
+ "kind": "markdown",
120
+ "value": "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
121
+ },
122
+ "references": [
123
+ {
124
+ "name": "en",
125
+ "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
126
+ },
127
+ {
128
+ "name": "zh-cn",
129
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
130
+ },
131
+ {
132
+ "name": "ja",
133
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
134
+ },
135
+ {
136
+ "name": "ua",
137
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
138
+ },
139
+ {
140
+ "name": "fr",
141
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
142
+ },
143
+ {
144
+ "name": "ko",
145
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
146
+ }
147
+ ]
148
+ },
149
+ {
150
+ "name": "lang",
151
+ "description": {
152
+ "kind": "markdown",
153
+ "value": "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n"
154
+ },
155
+ "values": [
156
+ {
157
+ "name": "ts"
158
+ },
159
+ {
160
+ "name": "js"
161
+ },
162
+ {
163
+ "name": "tsx"
164
+ },
165
+ {
166
+ "name": "jsx"
167
+ }
168
+ ],
169
+ "references": [
170
+ {
171
+ "name": "en",
172
+ "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
173
+ },
174
+ {
175
+ "name": "zh-cn",
176
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
177
+ },
178
+ {
179
+ "name": "ja",
180
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
181
+ },
182
+ {
183
+ "name": "ua",
184
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
185
+ },
186
+ {
187
+ "name": "fr",
188
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
189
+ },
190
+ {
191
+ "name": "ko",
192
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
193
+ }
194
+ ]
195
+ },
196
+ {
197
+ "name": "generic"
198
+ },
199
+ {
200
+ "name": "setup",
201
+ "valueSet": "v",
202
+ "description": {
203
+ "kind": "markdown",
204
+ "value": "\n- 각 `*.vue` 파일은 하나의 `<script setup>` 블록만 포함할 수 있습니다(일반 `<script>` 제외).\n\n- 스크립트는 전처리되어 컴포넌트의 `setup()` 함수로 사용됩니다.\n 즉, **컴포넌트의 각 인스턴스**에 대해 실행됩니다.\n `<script setup>` 내에 최상위 바인딩은 템플릿에 자동으로 노출됩니다.\n 자세한 내용은 [`<script setup>` 전용 문서](https://ko.vuejs.org/api/sfc-script-setup.html)를 참고하십시오.\n"
205
+ },
206
+ "references": [
207
+ {
208
+ "name": "en",
209
+ "url": "https://vuejs.org/api/sfc-spec.html#script-setup"
210
+ },
211
+ {
212
+ "name": "zh-cn",
213
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#script-setup"
214
+ },
215
+ {
216
+ "name": "ja",
217
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#script-setup"
218
+ },
219
+ {
220
+ "name": "ua",
221
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#script-setup"
222
+ },
223
+ {
224
+ "name": "fr",
225
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#script-setup"
226
+ },
227
+ {
228
+ "name": "ko",
229
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#script-setup"
230
+ }
231
+ ]
232
+ }
233
+ ],
234
+ "description": {
235
+ "kind": "markdown",
236
+ "value": "\n- 각 `*.vue` 파일은 하나의 `<script>` 블록만 포함할 수 있습니다([`<script setup>`](https://ko.vuejs.org/api/sfc-script-setup.html) 제외).\n\n- 스크립트는 ES 모듈로 실행됩니다.\n\n- **기본 내보내기**는 일반 객체 또는 [defineComponent](https://ko.vuejs.org/api/general.html#definecomponent)의 반환 값으로 Vue 컴포넌트 옵션 객체여야 합니다.\n"
237
+ },
238
+ "references": [
239
+ {
240
+ "name": "en",
241
+ "url": "https://vuejs.org/api/sfc-spec.html#script"
242
+ },
243
+ {
244
+ "name": "zh-cn",
245
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#script"
246
+ },
247
+ {
248
+ "name": "ja",
249
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#script"
250
+ },
251
+ {
252
+ "name": "ua",
253
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#script"
254
+ },
255
+ {
256
+ "name": "fr",
257
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#script"
258
+ },
259
+ {
260
+ "name": "ko",
261
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#script"
262
+ }
263
+ ]
264
+ },
265
+ {
266
+ "name": "script setup",
267
+ "attributes": [],
268
+ "description": {
269
+ "kind": "markdown",
270
+ "value": "\n- 각 `*.vue` 파일은 하나의 `<script setup>` 블록만 포함할 수 있습니다(일반 `<script>` 제외).\n\n- 스크립트는 전처리되어 컴포넌트의 `setup()` 함수로 사용됩니다.\n 즉, **컴포넌트의 각 인스턴스**에 대해 실행됩니다.\n `<script setup>` 내에 최상위 바인딩은 템플릿에 자동으로 노출됩니다.\n 자세한 내용은 [`<script setup>` 전용 문서](https://ko.vuejs.org/api/sfc-script-setup.html)를 참고하십시오.\n"
271
+ },
272
+ "references": [
273
+ {
274
+ "name": "en",
275
+ "url": "https://vuejs.org/api/sfc-spec.html#script-setup"
276
+ },
277
+ {
278
+ "name": "zh-cn",
279
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#script-setup"
280
+ },
281
+ {
282
+ "name": "ja",
283
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#script-setup"
284
+ },
285
+ {
286
+ "name": "ua",
287
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#script-setup"
288
+ },
289
+ {
290
+ "name": "fr",
291
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#script-setup"
292
+ },
293
+ {
294
+ "name": "ko",
295
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#script-setup"
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "name": "style",
301
+ "attributes": [
302
+ {
303
+ "name": "src",
304
+ "description": {
305
+ "kind": "markdown",
306
+ "value": "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
307
+ },
308
+ "references": [
309
+ {
310
+ "name": "en",
311
+ "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
312
+ },
313
+ {
314
+ "name": "zh-cn",
315
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
316
+ },
317
+ {
318
+ "name": "ja",
319
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
320
+ },
321
+ {
322
+ "name": "ua",
323
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
324
+ },
325
+ {
326
+ "name": "fr",
327
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
328
+ },
329
+ {
330
+ "name": "ko",
331
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
332
+ }
333
+ ]
334
+ },
335
+ {
336
+ "name": "lang",
337
+ "description": {
338
+ "kind": "markdown",
339
+ "value": "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n"
340
+ },
341
+ "values": [
342
+ {
343
+ "name": "css"
344
+ },
345
+ {
346
+ "name": "scss"
347
+ },
348
+ {
349
+ "name": "less"
350
+ },
351
+ {
352
+ "name": "stylus"
353
+ },
354
+ {
355
+ "name": "postcss"
356
+ },
357
+ {
358
+ "name": "sass"
359
+ }
360
+ ],
361
+ "references": [
362
+ {
363
+ "name": "en",
364
+ "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
365
+ },
366
+ {
367
+ "name": "zh-cn",
368
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
369
+ },
370
+ {
371
+ "name": "ja",
372
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
373
+ },
374
+ {
375
+ "name": "ua",
376
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
377
+ },
378
+ {
379
+ "name": "fr",
380
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
381
+ },
382
+ {
383
+ "name": "ko",
384
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
385
+ }
386
+ ]
387
+ },
388
+ {
389
+ "name": "scoped",
390
+ "valueSet": "v",
391
+ "description": {
392
+ "kind": "markdown",
393
+ "value": "\n`<style>` 태그에 `scoped` 속성이 있으면,\n해당 CSS는 현재 컴포넌트의 엘리먼트에만 적용됩니다.\n이것은 Shadow DOM에서 발견되는 스타일 캡슐화와 유사합니다.\n몇 가지 주의 사항이 있지만,\n폴리필이 필요하지 않습니다.\nPostCSS를 사용하여 다음을 변환함으로써 달성됩니다:\n\n```vue\n<style scoped>\n.example {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\">안녕!</div>\n</template>\n```\n\n다음으로:\n\n```vue\n<style>\n.example[data-v-f3f3eg9] {\n color: red;\n}\n</style>\n\n<template>\n <div class=\"example\" data-v-f3f3eg9>안녕!</div>\n</template>\n```\n\n### 자식 컴포넌트 루트 엘리먼트 \n\n`scoped`를 사용하면 부모 컴포넌트의 스타일이 자식 컴포넌트로 누출되지 않습니다.\n그러나 자식 컴포넌트의 루트 노드는 부모의 범위가 지정된 CSS와 자식의 범위가 지정된 CSS 모두의 영향을 받습니다.\n이것은 부모가 레이아웃 목적으로 자식 루트 엘리먼트의 스타일을 지정할 수 있도록 의도적으로 설계된 것입니다:\n\n### 깊은 셀렉터 \n\n`scoped` 스타일의 셀렉터를 \"깊게\"(즉, 자식 컴포넌트에 영향을 미치게 하려면) `:deep()` 의사 클래스를 사용할 수 있습니다:\n\n```vue\n<style scoped>\n.a :deep(.b) {\n /* ... */\n}\n</style>\n```\n\n위의 내용은 다음과 같이 컴파일됩니다:\n\n```css\n.a[data-v-f3f3eg9] .b {\n /* ... */\n}\n```\n\n:::tip\n`v-html`로 만든 DOM 컨텐츠는 범위가 지정된 스타일의 영향을 받지 않지만,\n깊은 셀렉터를 사용하여 스타일을 지정할 수 있습니다.\n:::\n\n### 슬롯형 셀렉터 \n\n기본적으로 범위가 지정된 스타일은 `<slot/>`에 의해 렌더링된 컨텐츠에 영향을 미치지 않습니다.\n스타일을 전달하는 부모 컴포넌트가 소유한 것으로 간주되기 때문입니다.\n슬롯 컨텐츠를 명시적으로 대상으로 지정하려면,\n`:slotted` 의사 클래스를 사용해야 합니다:\n\n```vue\n<style scoped>\n:slotted(div) {\n color: red;\n}\n</style>\n```\n\n### 전역 셀렉터 \n\n하나의 규칙만 전역적으로 적용하려면,\n다른 `<style>`을 만드는 대신 `:global` 의사 클래스를 사용할 수 있습니다(아래 참고):\n\n```vue\n<style scoped>\n:global(.red) {\n color: red;\n}\n</style>\n```\n\n### 로컬 및 전역 스타일 혼합 \n\n동일한 컴포넌트에 범위가 지정된 스타일과 범위가 지정되지 않은 스타일을 모두 포함할 수도 있습니다:\n\n```vue\n<style>\n/* 전역 스타일 */\n</style>\n\n<style scoped>\n/* 로컬 스타일 */\n</style>\n```\n\n### 범위가 지정된 스타일 팁 \n\n- **범위가 지정된 스타일은 클래스의 필요성을 제거하지 않습니다**.\n 브라우저가 다양한 CSS 셀렉터를 렌더링하는 방식 때문에,\n `p { color: red }`처럼 범위를 지정할 때(즉, 속성 셀렉터와 결합될 때) 속도가 몇 배 느려집니다.\n `.example { color: red }`와 같이 클래스나 ID를 사용하면,\n 성능 저하를 거의 제거할 수 있습니다.\n\n- **재귀적 컴포넌트의 자손 셀렉터에 주의해야 합니다!**\n 셀렉터가 `.a .b`인 CSS 규칙의 경우,\n `.a`와 일치하는 엘리먼트가 재귀적인 자식 컴포넌트를 포함한다면,\n 해당 자식 컴포넌트의 모든 `.b`는 규칙과 일치하게 됩니다.\n"
394
+ },
395
+ "references": [
396
+ {
397
+ "name": "en",
398
+ "url": "https://vuejs.org/api/sfc-css-features.html#scoped-css"
399
+ },
400
+ {
401
+ "name": "zh-cn",
402
+ "url": "https://cn.vuejs.org/api/sfc-css-features.html#scoped-css"
403
+ },
404
+ {
405
+ "name": "ja",
406
+ "url": "https://ja.vuejs.org/api/sfc-css-features.html#scoped-css"
407
+ },
408
+ {
409
+ "name": "ua",
410
+ "url": "https://ua.vuejs.org/api/sfc-css-features.html#scoped-css"
411
+ },
412
+ {
413
+ "name": "fr",
414
+ "url": "https://fr.vuejs.org/api/sfc-css-features.html#scoped-css"
415
+ },
416
+ {
417
+ "name": "ko",
418
+ "url": "https://ko.vuejs.org/api/sfc-css-features.html#scoped-css"
419
+ }
420
+ ]
421
+ },
422
+ {
423
+ "name": "module",
424
+ "valueSet": "v",
425
+ "description": {
426
+ "kind": "markdown",
427
+ "value": "\n`<style module>` 태그는 [CSS 모듈](https://github.com/css-modules/css-modules)로 컴파일되고,\n결과적으로 CSS 클래스를 `$style` 키(key) 내부에 객체로 컴포넌트에 노출합니다:\n\n```vue\n<template>\n <p :class=\"$style.red\">이것은 빨간색이어야 합니다.</p>\n</template>\n\n<style module>\n.red {\n color: red;\n}\n</style>\n```\n\n결과적인 클래스는 충돌을 피하기 위해 해시되어,\nCSS 범위를 현재 컴포넌트로만 지정하는 것과 동일한 효과를 얻습니다.\n\n[전역 예외](https://github.com/css-modules/css-modules#exceptions), [구성](https://github.com/css-modules/css-modules#composition) 등의 자세한 사항은 [CSS 모듈 스팩](https://github.com/css-modules/css-modules)을 참고하십시오.\n\n### 커스텀 이름 삽입 \n\n`module` 속성에 값을 지정하여,\n주입된 클래스 객체의 속성 키를 커스텀할 수 있습니다:\n\n```vue\n<template>\n <p :class=\"classes.red\">red</p>\n</template>\n\n<style module=\"classes\">\n.red {\n color: red;\n}\n</style>\n```\n\n### 컴포지션 API와 함께 사용 \n\n주입된 클래스는 `useCssModule` API를 통해 `setup()` 및 `<script setup>`에서 접근할 수 있습니다.\n커스텀 주입 이름이 있는 `<style module>` 블록의 경우 `useCssModule`은 일치하는 `module` 속성 값을 첫 번째 인자로 받습니다:\n\n```js\nimport { useCssModule } from 'vue'\n\n// setup() 내부에서...\n// 기본값은, <style module>의 클래스 반환\nuseCssModule()\n\n// 이름을 지정한 경우, <style module=\"classes\">의 클래스 반환\nuseCssModule('classes')\n```\n"
428
+ },
429
+ "references": [
430
+ {
431
+ "name": "en",
432
+ "url": "https://vuejs.org/api/sfc-css-features.html#css-modules"
433
+ },
434
+ {
435
+ "name": "zh-cn",
436
+ "url": "https://cn.vuejs.org/api/sfc-css-features.html#css-modules"
437
+ },
438
+ {
439
+ "name": "ja",
440
+ "url": "https://ja.vuejs.org/api/sfc-css-features.html#css-modules"
441
+ },
442
+ {
443
+ "name": "ua",
444
+ "url": "https://ua.vuejs.org/api/sfc-css-features.html#css-modules"
445
+ },
446
+ {
447
+ "name": "fr",
448
+ "url": "https://fr.vuejs.org/api/sfc-css-features.html#css-modules"
449
+ },
450
+ {
451
+ "name": "ko",
452
+ "url": "https://ko.vuejs.org/api/sfc-css-features.html#css-modules"
453
+ }
454
+ ]
455
+ }
456
+ ],
457
+ "description": {
458
+ "kind": "markdown",
459
+ "value": "\n- `*.vue` 파일에는 여러 `<style>` 태그가 포함될 수 있습니다.\n\n- `<style>` 태그는 현재 컴포넌트에 스타일을 캡슐화하는 데 도움이 되도록,\n `scoped` 또는 `module` 속성(자세한 내용은 [SFC 스타일 특징](https://ko.vuejs.org/api/sfc-css-features.html) 참고)을 가질 수 있습니다.\n 캡슐화 모드가 다른 여러 `<style>` 태그를 동일한 컴포넌트에 혼합할 수 있습니다.\n"
460
+ },
461
+ "references": [
462
+ {
463
+ "name": "en",
464
+ "url": "https://vuejs.org/api/sfc-spec.html#style"
465
+ },
466
+ {
467
+ "name": "zh-cn",
468
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#style"
469
+ },
470
+ {
471
+ "name": "ja",
472
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#style"
473
+ },
474
+ {
475
+ "name": "ua",
476
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#style"
477
+ },
478
+ {
479
+ "name": "fr",
480
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#style"
481
+ },
482
+ {
483
+ "name": "ko",
484
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#style"
485
+ }
486
+ ]
487
+ },
488
+ {
489
+ "name": "커스텀 블럭",
490
+ "attributes": [
491
+ {
492
+ "name": "src",
493
+ "description": {
494
+ "kind": "markdown",
495
+ "value": "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
496
+ },
497
+ "references": [
498
+ {
499
+ "name": "en",
500
+ "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
501
+ },
502
+ {
503
+ "name": "zh-cn",
504
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
505
+ },
506
+ {
507
+ "name": "ja",
508
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
509
+ },
510
+ {
511
+ "name": "ua",
512
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
513
+ },
514
+ {
515
+ "name": "fr",
516
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
517
+ },
518
+ {
519
+ "name": "ko",
520
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
521
+ }
522
+ ]
523
+ }
524
+ ],
525
+ "description": {
526
+ "kind": "markdown",
527
+ "value": "\n프로젝트별 요구 사항에 따라 `*.vue` 파일에 추가 커스텀 블록을 포함할 수 있습니다(예: `<docs>` 블록).\n커스텀 블록의 실제 예는 다음과 같습니다:\n\n- [Gridsome: `<page-query>`](https://gridsome.org/docs/querying-data/)\n- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)\n- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)\n\n커스텀 블록 처리는 도구에 따라 다릅니다.\n자체 커스텀 블록 통합을 구축하려는 경우 자세한 내용은 [SFC 커스텀 블록 통합 도구 섹션](https://ko.vuejs.org/guide/scaling-up/tooling.html#sfc-custom-block-integrations)을 참고하십시오.\n"
528
+ },
529
+ "references": [
530
+ {
531
+ "name": "en",
532
+ "url": "https://vuejs.org/api/sfc-spec.html#커스텀-블럭"
533
+ },
534
+ {
535
+ "name": "zh-cn",
536
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#커스텀-블럭"
537
+ },
538
+ {
539
+ "name": "ja",
540
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#커스텀-블럭"
541
+ },
542
+ {
543
+ "name": "ua",
544
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#커스텀-블럭"
545
+ },
546
+ {
547
+ "name": "fr",
548
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#커스텀-블럭"
549
+ },
550
+ {
551
+ "name": "ko",
552
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#커스텀-블럭"
553
+ }
554
+ ]
555
+ }
556
+ ],
557
+ "globalAttributes": [
558
+ {
559
+ "name": "lang",
560
+ "description": {
561
+ "kind": "markdown",
562
+ "value": "\n블록은 `lang` 속성을 사용하여 전처리기 언어를 선언할 수 있습니다.\n가장 일반적인 경우는 `<script>` 블록에 TypeScript를 사용하는 것입니다:\n\n```html\n<script lang=\"ts\">\n // TypeScript 사용\n</script>\n```\n\n`lang`은 모든 블록에 적용할 수 있습니다.\n예를 들어 `<style>`에서는 [Sass](https://sass-lang.com/)를, `<template>`에서는 [Pug](https://pugjs.org/api/getting-started)를 사용할 수 있습니다:\n\n```html\n<template lang=\"pug\">\np {{ msg }}\n</template>\n\n<style lang=\"scss\">\n $primary-color: #333;\n body {\n color: $primary-color;\n }\n</style>\n```\n\n다양한 전처리기와의 통합은 툴체인에 따라 다를 수 있습니다.\n예제를 보려면 해당 문서를 확인하십시오:\n\n- [Vite](https://vitejs.dev/guide/features#css-pre-processors)\n- [Vue CLI](https://cli.vuejs.org/guide/css#pre-processors)\n- [webpack + vue-loader](https://vue-loader.vuejs.org/guide/pre-processors#using-pre-processors)\n"
563
+ },
564
+ "values": [],
565
+ "references": [
566
+ {
567
+ "name": "en",
568
+ "url": "https://vuejs.org/api/sfc-spec.html#pre-processors"
569
+ },
570
+ {
571
+ "name": "zh-cn",
572
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#pre-processors"
573
+ },
574
+ {
575
+ "name": "ja",
576
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#pre-processors"
577
+ },
578
+ {
579
+ "name": "ua",
580
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#pre-processors"
581
+ },
582
+ {
583
+ "name": "fr",
584
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#pre-processors"
585
+ },
586
+ {
587
+ "name": "ko",
588
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#pre-processors"
589
+ }
590
+ ]
591
+ },
592
+ {
593
+ "name": "src",
594
+ "description": {
595
+ "kind": "markdown",
596
+ "value": "\n`*.vue` 컴포넌트를 여러 파일로 분할하는 것을 선호하는 경우,\n`src` 속성을 사용하여 언어 블록에서 외부 파일을 가져올 수 있습니다:\n\n```vue\n<template src=\"./template.html\"></template>\n<style src=\"./style.css\"></style>\n<script src=\"./script.js\"></script>\n```\n\n`src` 가져오기는 웹팩 모듈 요청과 동일한 경로 확인 규칙을 따릅니다.\n즉, 다음을 의미합니다:\n\n- 상대 경로는 `./`로 시작해야 함.\n- npm 의존성에서 리소스를 가져올 수 있음.\n\n```vue\n<!-- 설치된 \"todomvc-app-css\" npm 패키지에서 파일 가져오기 -->\n<style src=\"todomvc-app-css/index.css\" />\n```\n\n`src` 가져오기는 커스텀 블록에서도 작동합니다. 예를들어:\n\n```vue\n<unit-test src=\"./unit-test.js\">\n</unit-test>\n```\n"
597
+ },
598
+ "references": [
599
+ {
600
+ "name": "en",
601
+ "url": "https://vuejs.org/api/sfc-spec.html#src-imports"
602
+ },
603
+ {
604
+ "name": "zh-cn",
605
+ "url": "https://cn.vuejs.org/api/sfc-spec.html#src-imports"
606
+ },
607
+ {
608
+ "name": "ja",
609
+ "url": "https://ja.vuejs.org/api/sfc-spec.html#src-imports"
610
+ },
611
+ {
612
+ "name": "ua",
613
+ "url": "https://ua.vuejs.org/api/sfc-spec.html#src-imports"
614
+ },
615
+ {
616
+ "name": "fr",
617
+ "url": "https://fr.vuejs.org/api/sfc-spec.html#src-imports"
618
+ },
619
+ {
620
+ "name": "ko",
621
+ "url": "https://ko.vuejs.org/api/sfc-spec.html#src-imports"
622
+ }
623
+ ]
624
+ }
625
+ ]
626
+ }