zoukankan      html  css  js  c++  java
  • uniapp封装组件及父子组件传值

    1. 封装子组件 (子组件通过"props"接受父组件传的值,在子组件中定义props属性,type可以自定义类型(但是必须和父组件中的数据类型一致,否则会报错),default是默认值。)

    <template>
    	<div class="adsList">
    		<div class="cardItem" v-for="item in cardList" :key="item.index">
    			<div class="cardLogo">
    				<div class="adsLogo">
    					<image :src="item.icon" class="adsIcon"></image>
    					<p>{{item.name}}</p>
    				</div>
    				<checkbox-group @change="checkChange" v-if="cardType=='choose'">
    					<checkbox :checked="item.checked" :value="item.name" />
    				</checkbox-group>
    				<image src="../../static/imges/icon/write.png" class="editIcon" @click='toEdit(item)' v-if="cardType=='edit'"></image>
    			</div>
    			<div class="adsInfo">{{item.con?item.con:'----'}}</div>
    		</div>
    	</div>
    </template>
    
    <script>
    	export default {
    		props: {
    			cardList: {
    				type: Array,
    				default () {
    					return []
    				}
    			},
    			cardType: {
    				type: String,
    			},
    			used:{
    				type: Boolean
    			}
    		},
    		data() {
    			return {}
    		},
    		methods: {
    			checkChange(e) {
    				let val = e.detail.value;
    				console.log(val, 'ppppppppp')
    			},
    			toEdit(item) {
    				console.log(this.$props.used,'66666666666')
    				uni.navigateTo({
    					url: `/pages/content/editAds/index?info=${JSON.stringify(item)}&used=${this.$props.used}`
    				});
    			}
    		}
    	}
    </script>
    
    <style lang="less" scoped>
    
    </style>
    

      2. 在父组件中引入,注册,传值 ( 父组件通过“:”传值 )

    <template>
    	<div class="wrapper">
    		<div class="adsHead">
    			<div class="adsRead">
    				<checkbox-group @change="checkChange">
    					<checkbox :checked="checked" />
    				</checkbox-group>
    				<p>Address only</p>
    			</div>
    			<div class="adsSearch">
    				<input type="text" v-model="searchVal" @input="changeVal" class="searchInp" />
    				<image src="../../../static/imges/icon/searchAds.png" class="searchIcon" />
    			</div>
    		</div>
    		<adsCard :cardList='cardList' cardType='edit' :used='used' />
    	</div>
    </template>
    
    <script>
    	import adsCard from '../../../components/adsCard/index.vue'
    	export default {
    		components: {
    			adsCard
    		},
    		data() {
    			return {
    				checked: false,
    				used: false,
    				searchVal: '',
    				cardList: [{
    						icon: '../../../static/imges/icon/btg.png',
    						name: 'BTG',
    						con: '14654986535498645385',
    						checked: false
    					},
    					{
    						icon: '../../../static/imges/icon/CCL.png',
    						name: 'ETH',
    						con: '',
    						checked: false
    					},
    					{
    						icon: '../../../static/imges/icon/OKB.png',
    						name: 'BTG',
    						con: 'dfghjklkjcgfdtgfhjk',
    						checked: false
    					}
    				]
    			}
    		},
    		onReady() {
    			this.setTitle(this.$t("Users.address"))
    		},
    		methods: {
    			changeVal() {
    				this.searchVal = e.target.value
    			},
    			checkChange(e) {
    				this.checked = !this.checked
    			},
    		}
    	}
    </script>
    
    <style lang="less" scoped>
    
    </style>
    

      

  • 相关阅读:
    雅虎笔试&面试题
    有道面试
    IBM笔试&面试
    20140916~17华宇笔试&面试
    操作系统知识梳理3-存储管理
    操作系统知识梳理2-哲学家就餐问题
    操作系统知识梳理1-概述及进程管理
    阿里面试总结
    2012-2015网易有道笔试题总结
    PostgresSQL在cmd中使用psql操作数据库
  • 原文地址:https://www.cnblogs.com/ahalvxiaobu/p/14148539.html
Copyright © 2011-2022 走看看