vue基础教学(6)

一、父组件引入子组件
1.1.引入组件

import shoplist from '../shoplist.vue'


1.2.注册组件

components: {
            shoplist
        }


1.3.使用组件

<shoplist></shoplist>

2.父组件定义数据
2.1.定义数组
 

  const shoplistarr = [{
            img: "../../static/index/gsdz.png",
            shoplistname: "XDT190E托链轮总成(X-G)",
            newprice: "354",
            oldprice: "354"
        }
        , {
            img: "../../static/img/活动1.png",
            shoplistname: "XDT190E托链轮总成(X-G)",
            newprice: "354",
            oldprice: "354"
        }, {
            img: "../../static/img/活动2.png",
            shoplistname: "XDT190E托链轮总成(X-G)",
            newprice: "354",
            oldprice: "354"
        }, {
            img: "../../static/img/我的2.png",
            shoplistname: "XDT190E托链轮总成(X-G)",
            newprice: "354",
            oldprice: "354"
        }
    ]

2.2.把数据放入data中

data() {
            return {
                shoplistarr
            }
        },

3.父组件传值
3.1.在父组件使用子组件的标签内使用v-bind绑定父组件定义的数据
3.2.:shoplistarr要和子组件props接收的名字一致
3.3.“shoplistarr”应为data中的数据

<shoplist  :shoplistarr="shoplistarr"></shoplist>

4.子组件接收数据
4.1.props接收指定数据

props: {
            shoplistarr: Array
        }


4.2.使用数据
直接在<template>里面使用{{shoplistarr}}就可

<view>
        <view class="shoplistxq1" v-for="item in shoplistarr">
            <img :src="item.img">
            <div class="shoplistname1">{{item.shoplistname}}</div>
            <div class="newprice1">
                ¥{{item.newprice}}
                <span class="oldprice1">¥{{item.oldprice}}
                </span>
            </div>
        </view>
    </view>

二、子传父通过自定义事件,this.$emit("自定义方法名1",需要传的值)进行传值。

本文父组件:shopping.vue

子组件:shoplist.vue

1.第一步,在父组件中引入子组件(父组件内)

import shoplist from '../shoplist.vue'

2.在子组件内定义数据(子组件内)

data() {
            return {
                children:"this is children"
            };
        },

3.自定义一个方法,用于触发传值事件(子组件内)

<button @click="pass">子传父</button>

4. 通过方法传值(子组件内)

$("第一个参数为自定义方法名",第二个参数为需要传递的值)

methods:{
            pass(){
                this.$emit("passfunction",this.children)
            }
        },

 5.在父组件定义一个自定义事件2接收子组件传递过来的事件(父组件内)
等于号前面@passfunction需和子组件自定义方法名一样

等于号后面为父组件自定义方法名,需和下方的方法名对应

<shoplist   @passfunction = "meetfunction"></shoplist> 

6.在data中定义一个值用来存储接收的值(父组件内)
通过自定义方法2接收传递过来的值(父组件内)

data() {
            return {
                meetdata:[],
            }
        }, 

methods: {
            meetfunction(val){
                this.meetdata = val
            }
        },

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值