天天看點

a标簽傳值到另一個頁面_vue元件之間的傳值vue同級元件間傳值

a标簽傳值到另一個頁面_vue元件之間的傳值vue同級元件間傳值

把一個頁面裡的東西引入到另一個頁面,就是父子元件了啊,有一些公共的可以提取的就封裝成元件,互相之間有資料傳遞就是元件傳值

父元件向子元件傳值

第一個就是要明白怎麼在父頁面中向子元件中傳值?你可以給子元件傳入一個靜态的值:

但我們一般都是需要傳動态的值,是以需要

v-bind

綁定,當然,你傳的值可以是數字、對象、數組等等,

動态賦一個變量的值post.author.name”>
           

第二個就是要知道如何在子元件中接受父頁面傳過來的值,有幾點需要了解:

1.元件執行個體的作用域是孤立的。

2.元件要顯式的用props選項聲明它預期的資料,如:

// 某個子元件中:export default {  props: {    title: {      type: String,      default: 'hello world'    }  }}
           

子元件向父元件傳值

基本概念

在vue中,父子元件的關系可以總結為prop向下傳遞,事件向上傳遞。父元件通過prop給子元件下發資料,子元件通過事件給父元件發送資訊。

a标簽傳值到另一個頁面_vue元件之間的傳值vue同級元件間傳值

每個Vue執行個體都實作了事件接口:使用$on(evntName)監聽事件;使用$emit(eventName,optionalPayload)觸發事件。另外,父元件可以在使用子元件的地方直接

用v-on來監聽子元件觸發的事件。

舉例說明

  • 父元件在元件上定義了一個自定義事件childFn,事件名為parentFn用于接受子元件傳過來的message值。
<template>    <div class="test">      <test-com @childFn="parentFn">test-com>      <br/>       子元件傳來的值 : {{message}}    div>template><script>export default {    // ...    data: {        message: ''    },    methods: {       parentFn(payload) {        this.message = payload;      }    }}script>
           

子元件是一個buttton按鈕,并為其添加了一個click事件,當點選的時候使用$emit()觸發事件,把message傳給父元件。

<template> <div class="testCom">    <input type="text" v-model="message" />    <button @click="click">Sendbutton>div>template><script>export default {    // ...    data() {        return {          // 預設          message: '我是來自子元件的消息'        }    },    methods: {      click() {            this.$emit('childFn', this.message);        }    }    }script>
           

vue同級元件間傳值

1、在main.js同級目錄下建立new.js檔案

import Vue from 'vue'export default new Vue()
           

2、在元件a中傳出值

先引入new.js檔案,再通過$emit傳值

<template>  <div @click="onfocus">div>template><script>    import New from '@/new.js'      export default{    methods:{        onfocus:function(fromid){          New.$emit('getisshow',{            show:true          })         }      }  }script>
           

3、在同級b元件中通過$on接收

繼續閱讀