ホームページ  >  記事  >  ウェブフロントエンド  >  Vue コンポーネントで値を渡す方法はいくつかありますか?

Vue コンポーネントで値を渡す方法はいくつかありますか?

青灯夜游
青灯夜游オリジナル
2021-12-27 15:59:0013315ブラウズ

コンポーネント値の転送方法: 1. ルーティングを通じて値を渡す; 2. 親コンポーネント内のサブコンポーネントのラベルを親コンポーネントのデータにバインドすることで、サブコンポーネントの props が値を受け取ります親コンポーネントによって渡される コンポーネントのプロパティは、親コンポーネントによって渡される値を受け取ります; 3. 子コンポーネントは値を親コンポーネントに渡し、「this.$emit」を使用して getData イベントを走査します。

Vue コンポーネントで値を渡す方法はいくつかありますか?

このチュートリアルの動作環境: Windows7 システム、vue2.9.6 バージョン、DELL G3 コンピューター。

1. ルーティングパラメータ

手順:

①ルート定義時にパラメータを追加します props: true、ルーティング パスを定義するときは、パラメーター プレースホルダーを残す必要があります: name『Usage:to="'path/'+value"

② を追加します。パラメータ props:['name']

ジャンプ先のページへ ③ジャンプ先のページから名前を取得 使い方:直接 this in js.name; HTML での直接補間#{<!-- -->{ name}}

#2. 親コンポーネントが子コンポーネントに値を渡します

親コンポーネントは、子コンポーネントのタグを親コンポーネントのデータにバインドすることで値を子コンポーネントに渡し、子コンポーネントの props は親コンポーネントから渡された値を受け取ります

# 手順: #①親コンポーネントに転送するデータを設定『

data(){parentid:value}

②親コンポーネント内で参照している子コンポーネントにカスタム属性をバインドし、そのカスタム属性にデータをバインドする『

mybtn>

③サブコンポーネント

props:['childid']

にパラメータを追加し、

コード:

<div id="app">
	<mybtn :childid=&#39;parentid&#39; title="我是标题"></mybtn>
</div>
<script>
	new Vue({
		el:"app",
		data:{
			parentid:"88888"
		},
		components:{
			"mybtn" : {
				props: [&#39;childid&#39;,&#39;title&#39;],
	  			template: &#39;<button>我是{{childid}}号按钮{{title}}</button>&#39;
			}
		}
	})
</script>

結果表示:

Vue コンポーネントで値を渡す方法はいくつかありますか?

3. 子コンポーネントが親コンポーネントに値を渡す

引き渡しの実装方法子から親へは、this.emit を使用して getData イベントをトラバースします。まず、ボタンを使用して setData イベントをトリガーし、setData で this.emit を使用して getData イベントをトラバースし、最後に this.msg# # を返します。

# 手順:

#① 親コンポーネントにはパラメーターが必要なので、親コンポーネントのラベルにカスタム イベントを定義し、イベント内のパラメーターを取得します。 ##@myEvent=" callback"コールバック関数でパラメータを受け取る』

② サブコンポーネントでカスタム イベントをトリガーし、パラメータを渡します。 『this.$emit('親コンポーネントのカスタムイベント',parameters)
コード:

<template>
  <div>
	  <mybtn :style="{color:acolor,background:bcolor}" @changeColorEvent="getColor" :parentid="childid" title="我是标题"></mybtn>
  </div>

</template>
<script>

  export default {
    name : &#39;test&#39;,
    data () {
      return {
        childid:"666",
        acolor:&#39;blue&#39;,
        bcolor:&#39;red&#39;
      }
    },
    methods:{
      getColor(colors){
        //父组件就可以拿到子组件传过来的colors
        console.log(colors)
        this.acolor = "white";
        this.bcolor = colors;
      },
      //接收多个参数
      /*getColor(colors1,colors2){
        console.log(colors1,colors2)
        this.acolor = colors2;
        this.bcolor = colors1;
      }*/
    },
    components: {
      &#39;mybtn&#39; : {
        props : [&#39;parentid&#39;,&#39;title&#39;],
        template : `
          <div class="box">
            <p>我最初是一张白纸</p>
            <button @click="changeColor">我是{{parentid}}号按钮{{title}}</button>
          </div>
        `,
        methods: {
          changeColor(){
          //这个方法是触发父组件中的事件,第一个参数是触发的事件名称。第二个参数及以后是向changeColorEvent传的参数
           this.$emit(&#39;changeColorEvent&#39;,"orange")
           //发送多个参数可以直接跟在后面
           //this.$emit(&#39;changeColorEvent&#39;,"orange","white")
          }
        }
      }
    }
  }
</script>
<style scoped>

</style>

4. 非親コンポーネント間での値の受け渡し

Vue コンポーネントで値を渡す方法はいくつかありますか?

手順: (1) メソッド1.

① パブリック通信コンポーネント (

Vue) を作成し、値を渡す必要があるコンポーネントに通信コンポーネントを導入します。

② イベントを 1 つにバインドします。

this.on('eventname', this. id)

③別のコンポーネントでイベントをトリガーするthis.$ Emit('eventname',( options)=>{ } )

(2) 方法 2、

パブリック データをローカル ストレージに追加します。これは 2 ページで取得できます。変更

[関連する推奨事項: "vue.js チュートリアル

"]

以上がVue コンポーネントで値を渡す方法はいくつかありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。