Vue(8)--父子组件传值&第三方组件库

一、父子组件传值

1、父传子

$parent:可以获取父组件的实例,还可以继续获取它的父级组件。

parent.root.house)

// Child1组件
Vue.component('Child1', {
    // 通过$parent返回的是父组件对象
    template: `
      

房产信息

{{$parent.house.address}}

{{$parent.house.size}}

` }) // childSon组件 Vue.component('Childson',{ // $parent获取父组件对象;$root获取根组件对象 template:`

房产信息

{{$parent.$parent.house.address}}

{{$parent.$parent.house.size}}


{{$root.house.address}}

{{$root.house.size}}

` }) // Child2组件 Vue.component('Child2', { template: `

汽车信息

{{$parent.car.name}}

{{$parent.car.color}}

` }) // Child3组件 Vue.component('Child3', { template: `

存款信息

{{$parent.money.value}}

{{$parent.money.bank}}

` }) // 暂且将#app对应的内容当成根组件 new Vue({ el: '#app', data: { house: { address: '朝阳区朝阳山庄6栋3单元101', size: '150平' }, car: { name: '奔驰S400', color: '黑色' }, money: { value: '150W', bank: '中国建设银行' } } })

2、子传父

children:返回的是所有子组件对象的数组,再通过下标获取指定的子组件。当组件顺序不会发生变化时,用children;否则用refs:返回的是一个对象,对象中包含所有带有ref属性的子组件。 注意:不是只有组件才可以添加ref属性,任何标签都可以加ref属性 。

大儿子

姓名:{{son1.name}}

年龄:{{son1.age}}

二儿子

姓名:{{son2.name}}

年龄:{{son2.age}}

小儿子

姓名:{{son3.name}}

年龄:{{son3.age}}

// Child1组件
Vue.component('Child1', {
    // 通过$parent返回的是父组件对象
    template:`
        

房产信息

{{$parent.house.address}}

{{$parent.house.size}}

`, data() { return { name:'张远', age:25 } } }) // childSon组件 Vue.component('Childson',{ // $parent获取父组件对象 // $root获取根组件对象 template:`

房产信息

{{$parent.$parent.house.address}}

{{$parent.$parent.house.size}}


{{$root.house.address}}

{{$root.house.size}}

` }) // Child2组件 Vue.component('Child2', { template:`

汽车信息

{{$parent.car.name}}

{{$parent.car.color}}

`, data() { return { name:'张飞', age:23 } } }) Vue.component('Child3', { template:`

存款信息

{{$parent.money.value}}

{{$parent.money.bank}}

`, data() { return { name:'张强', age:20 } } }) // 暂且将#app对应的内容当成根组件 new Vue({ el:'#app', //数据 data:{ house:{ address:'名城世家3栋1单元1101室', size:'150平米' }, car:{ name:'奔驰S400', color:'黑色' }, money:{ value:'150W', bank:'中国建设银行' }, //接收子组件的数据的对象 son1:{ name:'', age:0 }, son2:{ name:'', age:0 }, son3:{ name:'', age:0 } }, mounted() { // $children返回的是所有子组件对象的数组 // 如果页面的结构出现了调整,这里获取的具体的组件下标就对不上号了。 // console.log(this.$children); /* this.son1.name = this.$children[0].name this.son1.age = this.$children[0].age this.son2.name = this.$children[1].name this.son2.age = this.$children[1].age this.son3.name = this.$children[2].name this.son3.age = this.$children[2].age */ // $refs返回的是一个对象,对象中包含所有带有ref属性的组件 // console.log(this.$refs); this.son1.name = this.$refs.son1.name this.son1.age = this.$refs.son1.age this.son2.name = this.$refs.son2.name this.son2.age = this.$refs.son2.age this.son3.name = this.$refs.son3.name this.son3.age = this.$refs.son3.age } })

二、第三方组件

1、element-ui组件库

官网地址:https://element.eleme.cn/#/zh-CN/component/tabs





    
    
    
    常用的第三方组件库
    
    



    
主要按钮 默认

2、iview组件库

官网地址:http://v1.iviewui.com/docs/guide/install




    
    
    
    第三方组件库iview
    
    


    
Primary

3、Vant组件库

官网地址:https://vant-contrib.gitee.io/vant/#/zh-CN/





    
    
    
    第三方组件库Vant
    
    



    
主要按钮

你可能感兴趣的:(Vue(8)--父子组件传值&第三方组件库)