uniapp中組件傳值


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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM