ホームページ > 記事 > ウェブフロントエンド > Vue コンポーネントで値を渡す方法はいくつかありますか?
コンポーネント値の転送方法: 1. ルーティングを通じて値を渡す; 2. 親コンポーネント内のサブコンポーネントのラベルを親コンポーネントのデータにバインドすることで、サブコンポーネントの props が値を受け取ります親コンポーネントによって渡される コンポーネントのプロパティは、親コンポーネントによって渡される値を受け取ります; 3. 子コンポーネントは値を親コンポーネントに渡し、「this.$emit」を使用して getData イベントを走査します。
このチュートリアルの動作環境: 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}』 ②親コンポーネント内で参照している子コンポーネントにカスタム属性をバインドし、そのカスタム属性にデータをバインドする『
』③サブコンポーネント
にパラメータを追加し、
<div id="app">
<mybtn :childid='parentid' title="我是标题"></mybtn>
</div>
<script>
new Vue({
el:"app",
data:{
parentid:"88888"
},
components:{
"mybtn" : {
props: ['childid','title'],
template: '<button>我是{{childid}}号按钮{{title}}</button>'
}
}
})
</script>
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 : 'test', data () { return { childid:"666", acolor:'blue', bcolor:'red' } }, 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: { 'mybtn' : { props : ['parentid','title'], template : ` <div class="box"> <p>我最初是一张白纸</p> <button @click="changeColor">我是{{parentid}}号按钮{{title}}</button> </div> `, methods: { changeColor(){ //这个方法是触发父组件中的事件,第一个参数是触发的事件名称。第二个参数及以后是向changeColorEvent传的参数 this.$emit('changeColorEvent',"orange") //发送多个参数可以直接跟在后面 //this.$emit('changeColorEvent',"orange","white") } } } } } </script> <style scoped> </style>
4. 非親コンポーネント間での値の受け渡し
手順: (1) メソッド1.
① パブリック通信コンポーネント (Vue) を作成し、値を渡す必要があるコンポーネントに通信コンポーネントを導入します。
② イベントを 1 つにバインドします。this.on('eventname', this. id)
③別のコンポーネントでイベントをトリガーする
this.$ Emit('eventname',( options)=>{ } )
(2) 方法 2、
[関連する推奨事項: "
vue.js チュートリアル
以上がVue コンポーネントで値を渡す方法はいくつかありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。