Explicación detallada del método de transferencia de valor entre componentes de vue

La transferencia de valor entre componentes se divide en dos categorías

1. Pasar valor durante la transición de componentes (pasar valor entre componentes hermanos)

2. Pasar valores entre componentes principales y secundarios

3. Pasar valor a través de Vuex


1. Pasar valores entre componentes hermanos

Solución:
use params y query para pasar valores

Un componente

1.A页面中的代码this.$router.push({name: 'XXX', params: {id: id}})
或
this.$router.push({path: '/XXX',name:'XXX  query: {id: id}})

Página B

id :this.$route.params.id 
或
id :this.$route.query.id

Al pasar los parámetros a través de la consulta, los datos no desaparecerán después de que se actualice la página. ¡Pero los params desaparecerán después de refrescarse!

Pero si desea pasar valores a través de pramas y los datos de la página no desaparecen, solo necesita agregar los parámetros correspondientes a la ruta en la configuración de enrutamiento.
Ejemplo: (nombre: 'XXX', ruta: '/ XXX /: id', componente: XXX)

Sin embargo, la URL de la página pasada a través de la consulta mostrará la información de los parámetros pasados, mientras que params no.

Resumir params y consulta:
Seguridad: params no mostrará la información del parámetro pasado en la url. Si es información importante, se recomienda utilizar params.
Conveniencia: consulta no necesita reconfigurar el enrutamiento para lograr que los parámetros de actualización no desaparezcan
. Las características de parmas y query son las anteriores Estos, puedes usarlos según sea necesario (๑ • ̀ ㅂ • ́) و✧

2. Pasar valores entre componentes principales y secundarios

例子:(父组件中注册的子组件)

        <pagination-font  
        :totalCount="totalCount"  
        :currentPath="currentPath"  
        @paging="otherData"        
        ></pagination-font>

1. El componente principal pasa el valor al componente secundario

Componente padre

': totalCount': el parámetro que el componente secundario necesita para
aceptar 'TotalCount': el parámetro pasado por el componente principal

Subconjunto

Acepta valores a través de accesorios

  props: {
      totalCount:  { 
      type: Number,      //接受值的类型
           default: 0    //默认值
           } 
      }

2. El componente secundario pasa el valor al componente principal.

Subconjunto

Personalice un evento y páselo al componente principal

     this.$emit("paging", response.data.allData.list);
Componente padre

Agregue la declaración del método accept al subcomponente registrado

@paging="OtherData"

@paging es un método que acepta definiciones de componentes secundarios (equivalente a un puente que conecta componentes principales y secundarios)

otherData es el método definido por el componente principal

    OtherData(data) {
          this.messageList = data;  // data==response.data.allData.list
           }
3. Pasar parámetros a través de Vuex

Vuex es equivalente a un lugar público, si quieres pasar parámetros, solo necesitas
leer y escribir los datos en vuex.

  • Primero defina los datos en vuex
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

const state = {    
table:""
}  

const mutations = { 
    GET_TABLE:(state,data)=>{   state.table=data  }
    }
    
const actions = {}
export default new Vuex.Store({ 
   state, 
   mutations,
   actions
   })
  • Escribir datos
this.$store.commit("GET_TABLE",table)
  • Leer los datos
this.$store.state.table

Todos sienten que es muy conveniente usar vuex ︿ ( ̄︶ ̄) ︿

ps: En cuanto a la instalación y configuración de vuex, habrá un tutorial más adelante (# 'O')

Supongo que te gusta

Origin blog.csdn.net/weixin_44383354/article/details/100798540
Recomendado
Clasificación