uni-app组件父子页面传递参数Props属性字段类型讲解

知识技术 2020-12-17 00:12 5037
转载请务必注明: 来源:《建站管家》https://www.df81.com/news/157.html

pages/index/index.vue父页面代码如下:

<template>
	<view class="wrap">
		<!-- 引用组件 -->
		<navigation :bbb="bbb" :aaa="aaa" :ccc="ccc" :ddd="ddd"></navigation>
	</view>
</template>
<script>
import navigation from '../../components/navigation.vue';
export default {
		data() {
			return {
				// 字符串
				aaa:'classname',
				// 布尔型
				bbb:true,
				// 数值
				ccc:1,
				// 对象类型
				ddd:{abc:666,www:777}
			}
		},
		onLoad(p){},
                components:{
			navigation
		}
}


components/navigation.vue组件示例代码如下:

<template name="navigation">
	<view>
		<view v-if="bbb" :class="aaa">
			{{ccc}}
			{{ddd.abc}}
		</view>
	</view>
</template>
<script>
	export default {
		name:'navigation',
		data() {
			return {}
		},
		created(p){},
		// 父页面传递的属性参数
		props:{
			// 字符串
			aaa:{
				type:String
			},
			// 布尔型
			bbb:{
				type:Boolean
			},
			// 数值
			ccc:{
				type:Number
			},
			// 对象类型
			ddd:{
				type:Object
			},			
		},
		methods:{}
	}
</script>


下面是摘自网络的代码,供参考:

Vue.component('myComponent', {

  props: {

    // 基础类型检测 (`null` 意思是任何类型都可以)

    propA: Number,

    // 多种类型

    propB: [String, Number],

    // 必传且是字符串

    propC: {

      type: String,

      required: true

    },

    // 数字,有默认值

    propD: {

      type: Number,

      default: 100

    },

    // 数组/对象的默认值应当由一个工厂函数返回

    propE: {

      type: Object,

      default: function () {

        return { message: 'hello' }

      }

    },

    // 自定义验证函数

    propF: {

      validator: function (value) {

        return value > 10

      }

    }

  }

});


type 可以是下面原生构造器:

String

Number

Boolean

Function

Object

Array

Symbol

type 也可以是一个自定义构造器函数,使用 instanceof 检测。


// 自定义Person构造器

function Person(name, age) {

    this.name = name

    this.age = age

}

Vue.component('my-component', {

    template: `<div>名字: {{ person-prop.name }}, 年龄: {{ person-prop.age }} </div>`,

    props: {

      person-prop: {

        type: Person     // 指定类型

      }

    }

});

new Vue({

    el: '#app2',

    data: {

      person: 2        // 传入Number类型会报错

    }

});


点赞 (0)

收藏 (0)

本站部分信息来源网络,如有侵权,请联系QQ:1062129401删除。

上一篇: 《建站管家》二次开发文档

下一篇: uniapp微信小程序真机调试时,提示fail to connect to wxagame.weixin.qq.com错误

请先登录后,再发表评论 ~ ~
发表评论
发表评论
发表帖子
广告位招租( ¥5 / 天 )
点击咨询
相关帖子

如果要判断文件是否存在,用函数 is_file(),如果要判断目录是否存在,用函数 is_dir()
用宝塔安装TP程序后,网站前台可以访问,后台无法访问,不是程序问题,而是web服务器环境配置问题(PHP配置),出现这种问题,一般是windows主机安装宝塔造成的,linux安装宝塔不会出现此错误
广告位招租( ¥3 / 天 )
点击咨询
广告位招租( ¥2 / 天 )
点击咨询
广告位招租( ¥1 / 天 )
点击咨询
最新帖子

小朋友,你爸爸是谁啊?这很单纯的,就像我们碰到别人会问:你吃过饭了吗?类似;许多人初次相识,经常会问:你是做什么的啊?你做什么,好像决定你收入的高低,你,资产的范围
1、升级框架到ThinkPHP8.0.3【要求PHP8.1+环境,推荐PHP8.1】 2、启用/禁用调试模式等小细节改进
后台点击生成站点地图 一直转圈圈没有反应,
在线客服