Vue 属性传值Props

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 属性传值Props相关的知识,希望对你有一定的参考价值。

参考技术A 是以对象的形式书写,属性名users中存在两个属性,type数据形式,required该数据形式的数据是否符合其规定。如果有更多属性传值,可以继续在props中书写。

vue的组件传值

一、组件传值有
1.父传子
2.字传父
3.兄弟

1.父传子
1)在父组件的子组件标签上绑定一个属性,挂载要传输的变量
(2)在子组件中通过props来接受数据,props可以是数组也可以是对象,接受的数据可以直接使用 props:[“属性名”] props:{属性名:数据类型}

props是单向传递的

1.定义数据
 data() {
    return {
  

      list1: [
        {
          id: 1,
          html: "a"
        },
        {
          id: 2,
          html: "6"
        }
      ],
      l: []
    };
  },

2.父组件挂载

import bbb from "./b";
export default {
  components: {
    bbb
  },
  }
  <bbb :list="list1"/>

3.子组件接收,就可以使用了

export default {
  props:['list1'],
  }

2.字传父
(1)在父组件的子组件标签上自定义一个事件,然后调用需要的方法
(2)在子组件的方法中通过 this.$emit(“事件”)来触发在父组件中定义的事件,数据是以参数的形式进行传递的
1.自定义事件
2.用emit

<input type="text" v-model="a" @keyup="k" />
  methods: {
    k() {
      this.$emit("k", this.a);
    }
  },

3.在父组件接收事件

<bbb @k="k" />
 k(a) {
      this.list.push(a);
    },

3.兄弟
(1)在src中新建一个Bus.js的文件,然后导出一个空的vue实例
(2)在传输数据的一方引入Bus.js 然后通过Bus. e m i t ( “ 事 件 名 ” , " 参 数 " ) 来 来 派 发 事 件 , 数 据 是 以 emit(“事件名”,"参数")来来派发事件,数据是以 emit(,"")emit()的参数形式来传递
(3)在接受的数据的一方 引入 Bus.js 然后通过 Bus.$on(“事件名”,(data)=>{data是接受的数据})
1.创建一个文件夹utils里面Bus.js然后导出一个空的vue实例

import Vue from "vue";


//抛出空的实例化对象
export default  new Vue();

2.在导入一方引入bus.js
使用是bus.emit

import bus from '../utils/bus'
	  k() {
      bus.$emit("k", this.a);
    }

3.在父组件导入bus.js 然后用bus.on(“事件名”,(data)

import bus from '../utils/bus'
bus.on("k",data)

​四、:通过 vuex 实现

​ 具体实现:vuex 是一个状态管理工具,主要解决大中型复杂项目的数据共享问题,主要包括 state,actions,mutations,getters 和 modules 5 个要素,主要流程:组件通过 dispatch 到 actions,actions 是异步操作,再 actions中通过 commit 到 mutations,mutations 再通过逻辑操作改变 state,从而同步到组件,更新其数据状态

以上是关于Vue 属性传值Props的主要内容,如果未能解决你的问题,请参考以下文章

一张图说清楚Vue3父子组件传值,以及props可否改的本质问题

解决vue组件props传值对象获取不到的问题

vue的组件传值

vue组件:props传值

vue组件:props传值

vue-父子组件传值