首頁  >  文章  >  web前端  >  vue元件傳值的幾種方式是什麼

vue元件傳值的幾種方式是什麼

青灯夜游
青灯夜游原創
2021-12-27 15:59:0013232瀏覽

元件傳值方式:1、透過路由進行傳值;2、透過在父元件中讓子元件標籤綁定父元件的數據,子元件的props接收父元件穿過來的值,子元件的props接收父元件傳的值;3、子元件傳送值給父元件,用「this.$emit」來遍歷getData事件。

vue元件傳值的幾種方式是什麼

本教學操作環境:windows7系統、vue2.9.6版,DELL G3電腦。

1、路由傳參

#步驟:

①定義路由時加上參數props: true,在定義路由路徑時要留有參數佔位符: name‘用法:to="'路徑/'+value"

②在跳到的頁面加上參數props:['name']

③在跳到的頁面就取得到了name『用法: js直接this. 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、子元件傳送值

3、子元件傳送值給父元件

#子傳父的實作方式就是用了this.e m i t 來遍歷getData 事件,先用按鈕來觸發setData事件,在setData中用this.emit 來遍歷getData 事件,最後回傳this.msg步驟:

①由於父元件需要參數,所以在父元件中的標籤上定義自訂事件,在事件內部取得參數;『

@myEvent=" callback"

在callback函數中接收參數』

#②在子元件中觸發自訂事件,並傳參。 『

this.$emit('父元件中的自訂事件',參數)vue元件傳值的幾種方式是什麼

#程式碼:

<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、非父元件之間傳值################步驟:#########(1)方法一、######①建立一個公共的通訊元件(###Vue###),需要傳值的元件裡引入該通訊元件######②在一個中綁定一個事件# ##this.on('eventname', this. id)#########③在另一個元件中觸發事件###this.$ emit('eventname',( options)=>{ })#########(2)方法二、######在本地儲存中新增公共數據,可以在兩個頁面中獲取,更改######【相關推薦: 《###vue.js教程###》】###

以上是vue元件傳值的幾種方式是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn