一点vue笔记

参考 https://www.cnblogs.com/shengnan-2017/p/10419050.html

(详细代码看这里哦!)

父组件向子组件传递值

//父->子,把"parentNum: 35"绑定到"deliverParentNum",传递过去。
//v-bind简写":" 可理解为把参数传递给子组件(子组件可读取)
//v-on简写"@" 绑定事件,可理解为接收子组件参数传递(子组件事件请求)
<my-child :deliverParentNum="ParentNum"></my-child>
...
import MyChild from "./Child"
export default{
    components: {MyChild}
    data() {
        return {
        	parentNum: 35
        };
    }
}
//子组件,通过props,接收参数"deliverParentNum"
<h5>{{deliverParentNum}}</h5>
...
export default{
    data() {...}
    props: {
    	deliverParentNum: Number	//这个Number看起来没有什么用处哦!,可能是变量类型
    }
}

子组件向父组件传递值

(在"子组件"中触发事件,在"父组件"的自定义函数中处理事件。)

//子->父,子组件得到一个"计算属性",通过"事件addParent"把"计算属性作为参数"传递给父组件。
<button @click="addNum">加1按钮</button>	//触发addNum()方法
...
export default{
    components: {MyChild}
    data() {...}
    props: {...}
    computed: {
    	parentActualNum(){		//计算"属性",是一个属性
    		return this.deliverParentNum + 1;
    	}
    }
    methods: {
    	AddNum(){				//addNum()方法,得到计算属性,并提交"事件addParentNum"
    		this.$emit("addParentNum", this.parentActualNum);
    	}
    }
}
//父组件,父组件通过"事件addParent"让自定义的"监听器函数(名称随便写哦)"处理传过来的"参数"。
<my-child :deliverParentNum="parentNum" @addParentNum="handler"></my-child>
...
import MyChild from "./Child"
export default{
    components: {MyChild}
    data() {...}
    methods: {
    	handler(actualNum){
    		console.log("子组件传过来的参数是:", actualNum);
    	}
    }
}

简单总结

父传子,

​ 父组件用":"传递;

​ 子组件要用props接收;

传递的参数名相同

子传父,

​ 子组件通过"事件"传递"参数";

​ 父组件通过"事件"调用"自定义函数" (使用"@"指定自定义函数);

传递的事件名相同

ps 关于Vue.set()函数

参考 https://www.jianshu.com/p/e6e8c45e7fd6

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值