对象
页面级组件
属性 | 类型 | 描述 |
---|
data deprecated | Object | Function | 页面级组件的数据模型,能够转换为 JSON 对象;属性名不能以$或开头, 不要使用 for, if, show, tid 等保留字如果是函数,返回结果必须是对象,在组件初始化时会执行函数获取结果作为 data 的值使用 data 方式声明的属性会被外部数据覆盖,因此存在一定安全风险,推荐使用下面的 public,protected,private 来声明属性(注意:它们不能与 data 同时声明) |
public 1000+ | Object | 页面级组件的数据模型,影响传入数据的覆盖机制:public 内定义的属性允许被传入的数据覆盖,如果外部传入数据的某个属性未被声明,在 public 中不会新增这个属性 |
protected 1000+ | Object | 页面级组件的数据模型,影响传入数据的覆盖机制:protected 内定义的属性,允许被应用内部页面请求传递的数据覆盖,不允许被应用外部请求传递的数据覆盖 |
private 1000+ | Object | 页面级组件的数据模型,影响传入数据的覆盖机制:private 内定义的属性不允许被覆盖 |
computed 1050+ | Object | 计算属性,属性名不能以$或开头, 不要使用 for, if, show, tid 等保留字 |
自定义组件
属性 | 类型 | 描述 |
---|
data | Object | Function | 自定义组件的数据模型,能够转换为 JSON 对象;属性名不能以$或开头, 不要使用 for, if, show, tid 等保留字如果是函数,返回结果必须是对象,在组件初始化时会执行函数获取结果作为 data 的值 |
props | Array | Object | 定义组件外部可传入的所有属性;属性名不能以$或开头, 不要使用 for, if, show, tid 等保留字在模板代码中,请使用短横线分隔命名代替驼峰命名。如,属性定义 props: ['propA'],可通过<tag prop-a='xx'> 方式传递到组件内部支持 prop 验证 1010+ |
computed 1050+ | Object | 计算属性,属性名不能以$或_开头, 不要使用 for, if, show, tid 等保留字 |
prop 验证 1010+
在自定义组件中,可将 props 定义为带验证需求的对象。其中,key 为属性名,value 为属性对应的验证需求。验证失败则输出错误提示日志,增加 prop 验证有利于规范自定义组件的使用
定义:
属性 | 类型 | 描述 |
---|
type 1010+ | - | 检查属性值的类型。支持单一类型和多种可能类型,可在原生和自定义构造函数中任意选择,单独或组合使用- 原生构造函数:String | Number | Boolean | Function | Object | Array | Symbol- 自定义构造函数 |
default 1010+ | - | 设置属性的默认值 |
required 1010+ | Boolean | 设置属性是否必填 |
validator 1010+ | Function | 设置自定义验证函数。若函数的返回值为真,则通过验证;否则验证失败 |
示例:
<script>
export default {
props: {
// 单一类型检查的简写
propA: Number,
// 多种可能类型的简写
propB: [String, Number],
// 必填的字符串
propC: {
type: String,
required: true
},
// 带默认值的数字
propD: {
type: Number,
default: 100
},
// 带有默认值的对象
propE: {
type: Object,
default () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator (value) {
return value === 'hello'
}
}
}
}
</script>
计算属性 1050+
- 类型:
{ [key: string]: Function | { get: Function, set: Function } }
- 详细:计算属性将被混入到 Vm 实例中。所有 getter 和 setter 的 this 上下文自动地绑定为 Vm 实例。计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。注意,如果某个依赖 (比如非响应式属性) 在该实例范畴之外,则计算属性是不会被更新的。
示例:
export default {
data: {
firstName: 'Quick',
lastName: 'App'
},
computed: {
fullName: {
get () {
return `${this.firstName} ${this.lastName}`
},
set (value) {
const names = value.split(' ')
this.firstName = names[0]
this.lastName = names[names.length - 1]
}
}
},
onReady () {
console.log(this.fullName) // Quick App
this.fullName = 'John Doe'
console.log(this.firstName) // John
console.log(this.lastName) // Doe
}
}
公共对象
属性 | 类型 | 描述 |
---|
$app | Object | 应用对象 |
$page | Object | 页面对象 |
$valid | Boolean | 页面对象是否有效 |
$visible | Boolean | 页面是否处于用户可见状态 |
应用对象
可通过$app
访问
属性 | 类型 | 描述 |
---|
$def | Object | 使用this.$app.$def 获取在app.ux 中暴露的对象 |
$data | Object | 使用this.$app.$data 获取在manifest.json 的config.data 中声明的全局数据 |
页面对象
可通过$page
访问
属性 | 类型 | 描述 |
---|
action | String | 获取打开当前页面的 action。仅在当前页面是通过 filter 匹配的方式打开时有效,否则为 undefined。参见manifest 文件 |
uri | String | 获取打开当前页面的 uri。仅在当前页面是通过 filter 匹配的方式打开时有效,否则为 undefined。参见manifest 文件 |
name 1030+ | String | 获取当前页面路由的名称,与manifest 文件中router.pages 中对应的属性名一致 |
path 1030+ | String | 获取当前页面路由的 path,与manifest 文件中router.pages 中对应的 path 一致 |
component 1030+ | String | 获取当前页面路由的 component,与manifest 文件中router.pages 中对应的 component 一致 |
orientation 1040+ | String | 获取当前页面的屏幕方向:portrait:竖屏landscape:横屏 |
statusBarHeight 1050+ | Number | 获取当前页面的状态栏高度 |
titleBarHeight 1050+ | Number | 获取当前页面的标题栏高度 |
windowWidth 1050+ | Number | 获取当前页面的可使用窗口宽度 |
windowHeight 1050+ | Number | 获取当前页面可使用窗口高度 |