1、父组件传子组件
父组件内部写法:
<template>
<view>
<h2>首页</h2>
<!-- 绑定自定义属性传递数据 -->
<Two :value="valPar"></Two>
</view>
</template>
<script>
//引入子组件
import Two from "../../components/two/two.vue"
export default {
data() {
return {
valPar:"父组件传递过来的值"
}
},
components:{
Two//注册子组件
},
methods: {
}
}
</script>
子组件内部写法:
<template>
<h2>two组件收到:{{value}}</h2>
</template>
<script>
export default {
props:{
value:{
type:String,
default:"默认值"
}
},
data() {
return {
}
},
created(){
}
}
</script>
2、子组件传父组件 -- 写法1
父组件内部写法:
<template>
<view>
<!-- 接收到子组件传递的数据 -->
<h2>接收到的值:{{valueChild}}</h2>
<!-- 在子组件标签上绑定子组件内部对应事件,并触发对应回调 -->
<One @Transmit="handle"></One>
</view>
</template>
<script>
//引入子组件
import One from "../../component/one.vue"
export default {
data() {
return {
valueChild:"",//定义属性接收数据
}
},
components:{
One//注册子组件
},
onLoad(){
},
methods:{
// 子组件内部触发事件对应回调handle
handle(val){
this.valueChild=val;
}
}
}
子组件内部写法:
<template>
<view>
<h2>one组件</h2>
<!-- 点击按钮进行事件触发 -->
<button @click="handleTransmit">点击给父组件传值</button>
</view>
</template>
<script>
export default {
data() {
return {
//要传递的数据
valueParent: "子组件传递过来的数据"
}
},
methods: {
handleTransmit() {
// 进行事件触发,传递数据
this.$emit("Transmit", this.valueParent)
}
}
}
</script>
</script>
子组件传父组件 -- 写法2
父组件内部写法:
<template>
<view>
<!-- 接收到子组件传递的数据 -->
<h2>接收到的值:{{valueChild}}</h2>
<Two></Two>
</view>
</template>
<script>
//引入子组件
import Two from "../../components/two/two.vue"
export default {
data() {
return {
valueChild:"",//定义属性接收数据
}
},
components:{
Two//注册子组件
},
onLoad(){
// 进行事件绑定,val为子组件传递的数据
uni.$on("Transmit",(val)=>{
this.valueChild=val;
})
}
}
</script>
子组件内部写法:
<template>
<view>
<h2>two组件</h2>
<!-- 点击按钮进行事件触发 -->
<button @click="handleTransmit">点击给父组件传值</button>
</view>
</template>
<script>
export default {
data() {
return {
//要传递的数据
valueParent: "子组件传递过来的数据"
}
},
methods: {
handleTransmit() {
// 进行事件触发,传递数据
uni.$emit("Transmit", this.valueParent)
}
}
}
</script>