Skip to content

Commit 79fcfa3

Browse files
authored
fix: formatting in new web-components content (#2456)
1 parent 3c680a4 commit 79fcfa3

File tree

1 file changed

+13
-19
lines changed

1 file changed

+13
-19
lines changed

src/guide/extras/web-components.md

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ export function register() {
238238
}
239239
```
240240

241-
コンポーネントの利用者は、Vue ファイル内の要素を使用できます
241+
コンポーネントの利用者は、Vue ファイル内の要素を使用できます:
242242

243243
```vue
244244
<script setup>
@@ -263,8 +263,8 @@ customElements.define('some-bar', MyBar)
263263

264264
export function MyComponent() {
265265
return <>
266-
<some-foo ...>
267-
<some-bar ...></some-bar>
266+
<some-foo ... >
267+
<some-bar ... ></some-bar>
268268
</some-foo>
269269
</>
270270
}
@@ -293,8 +293,10 @@ customElements.define('some-element', SomeElement)
293293
// Vue の GlobalComponents タイプに新しい要素タイプを追加します。
294294
declare module 'vue' {
295295
interface GlobalComponents {
296-
// ここでは必ず Vue コンポーネントタイプ(SomeElement **ではなく** SomeComponent)を渡してください。
297-
// カスタム要素にはハイフンが必要です。そのため、ここではハイフン付きの要素名を使用します。
296+
// ここでは必ず Vue コンポーネントタイプを渡してください。
297+
// (SomeElement **ではなく** SomeComponent)
298+
// カスタム要素にはハイフンが必要です。
299+
// そのため、ここではハイフン付きの要素名を使用します。
298300
'some-element': typeof SomeComponent
299301
}
300302
}
@@ -304,14 +306,12 @@ declare module 'vue' {
304306

305307
Vue で構築されていないカスタム要素の SFC テンプレートで型チェックを有効にする推奨の方法をご紹介します。
306308

307-
308309
> [!Note]
309310
> この方法は、カスタム要素を作成する際に使用するフレームワークによって異なる場合があります。
310311
311312

312313
いくつかの JS プロパティとイベントが定義されたカスタム要素があり、それが `some-lib` というライブラリーに同梱されているとします:
313314

314-
315315
```ts
316316
// file: some-lib/src/SomeElement.ts
317317

@@ -350,10 +350,8 @@ export class AppleFellEvent extends Event {
350350

351351
実装の詳細は省略しますが、重要な部分は、プロパティの型とイベントの型という 2 つの型定義があることです。
352352

353-
354353
Vue でカスタム要素の型定義を簡単に登録するための型ヘルパーを作成してみましょう
355354

356-
357355
```ts
358356
// file: some-lib/src/DefineCustomElement.ts
359357

@@ -367,15 +365,17 @@ type DefineCustomElement<
367365
// Vue は、特に `$props` 型からプロパティ定義を読み取ります。要素のプロパティを
368366
// グローバルな HTML プロパティと Vue の特別なプロパティと組み合わせることに
369367
// 注意してください。
370-
/** @deprecated カスタム要素参照では、$props プロパティを使用しないでください。これはテンプレートプロパティ型専用です。 */
368+
/** @deprecated カスタム要素参照では、$props プロパティを使用しないでください。
369+
これはテンプレートプロパティ型専用です。 */
371370
$props: HTMLAttributes &
372371
Partial<Pick<ElementType, SelectedAttributes>> &
373372
PublicProps
374373

375374
// イベントタイプを明示的に定義するには、$emit を使用します。
376375
// Vue は、イベントタイプを`$emit`タイプから読み取ります。
377376
// `$emit` は、`Events` にマッピングする特定のフォーマットを必要とします。
378-
/** @deprecated カスタム要素参照では $emit プロパティを使用しないでください。これはテンプレートプロパティ型専用です。 */
377+
/** @deprecated カスタム要素参照では $emit プロパティを使用しないでください。
378+
これはテンプレートプロパティ型専用です。 */
379379
$emit: VueEmit<Events>
380380
}
381381

@@ -397,7 +397,6 @@ type VueEmit<T extends EventMap> = EmitFn<{
397397
398398
型ヘルパーを使用して、Vue テンプレートで型チェックのために公開すべき JS プロパティを選択できます:
399399
400-
401400
```ts
402401
// file: some-lib/src/SomeElement.vue.ts
403402

@@ -423,7 +422,6 @@ declare module 'vue' {
423422

424423
`some-lib` が TypeScript のソースファイルを `dist/` フォルダにビルドするとします。 `some-lib` のユーザーは、`SomeElement` をインポートし、Vue SFC で次のように使用できます:
425424

426-
427425
```vue
428426
<script setup lang="ts">
429427
// これにより、要素が作成され、ブラウザーに登録されます。
@@ -446,7 +444,8 @@ onMounted(() => {
446444
el.value!.someMethod()
447445
)
448446
449-
// これらの props は使用しないでください。これらは `undefined` です(IDE では取り消し線が表示されます):
447+
// これらの props は使用しないでください。これらは `undefined` です
448+
// IDE では取り消し線が表示されます:
450449
el.$props
451450
el.$emit
452451
})
@@ -469,7 +468,6 @@ onMounted(() => {
469468

470469
要素に型定義がない場合、プロパティとイベントの型はより手動で定義することができます:
471470

472-
473471
```vue
474472
<script setup lang="ts">
475473
// `some-lib` が型定義のないプレーンな JavaScript で、TypeScript が型を
@@ -505,10 +503,6 @@ declare module 'vue' {
505503

506504
カスタム要素の作成者は、ライブラリーからフレームワーク固有のカスタム要素の型定義を自動的にエクスポートすべきではありません。例えば、ライブラリーの残りの部分もエクスポートする `index.ts` ファイルからエクスポートすべきではありません。そうしないと、ユーザーに予期しないモジュール拡張エラーが発生します。ユーザーは、必要なフレームワーク固有の型定義ファイルをインポートする必要があります。
507505

508-
509-
510-
511-
512506
## Web コンポーネント と Vue コンポーネントの比較 {#web-components-vs-vue-components}
513507

514508
開発者の中には、フレームワークに依存した独自のコンポーネントモデルは避けるべきであり、カスタム要素のみを使用することでアプリケーションの「将来性」を確保できると考える人もいます。ここでは、この考え方が問題を単純化しすぎていると思われる理由を説明します。

0 commit comments

Comments
 (0)