ワイズリマインダー

Vue3をインストールせずに親からSFCのメソッドを実行してみた【CompositionAPI編】

デモ表示はこちら

次の条件のもと作成されています。
・Vue3その他もろもろはインストールしたくない。
・CDNからダウンロードした各種jsを同ドメイン内にアップロードしている。
・CompositionAPIを使用。

 

【ポイント】
インストール版ではないのでref()はVue.ref()と記述する。
refで定義した値を変更するためにはvalueにアクセスする。

 

index.html

<div id="app">
 <compo-string ref="childRef"></compo-string>
 <button type="button" @click="buttonClickFunction">親ボタン</button>
</div>

 

index.js

const { loadModule } = window['vue3-sfc-loader'];
Vue.createApp({
  setup( ){
    const childRef = Vue.ref(null);
    const buttonClickFunction = ( e ) => {
      childRef.value.fromParentFunction();
    };

    return {  buttonClickFunction, childRef }
  },
  components: {
    'compo-string': Vue.defineAsyncComponent( () => loadModule('compo_string.vue', vue3['loaderOption']() ) )
  }
}).mount('#app');

 

compo_string.vue

<template>
 <h4>{{ h4String }}</h4>
</template>

<script scoped>
export default{
  setup( ){
    const h4String = Vue.ref('Please click the button.');

    const fromParentFunction = ( e ) => {
      h4String.value = "Parent button clicked!!";
    };
    return { h4String, fromParentFunction };
  }
}
</script>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

検索

最近のコメント

最近の投稿

タグ

フィード配信

アーカイブ

外部リンク