对象

页面级组件

属性类型描述
data deprecatedObject | 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 等保留字

自定义组件

属性类型描述
dataObject | Function自定义组件的数据模型,能够转换为 JSON 对象;属性名不能以$或开头, 不要使用 for, if, show, tid 等保留字如果是函数,返回结果必须是对象,在组件初始化时会执行函数获取结果作为 data 的值
propsArray | 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设置自定义验证函数。若函数的返回值为真,则通过验证;否则验证失败

示例:

  1. <script>
  2. export default {
  3. props: {
  4. // 单一类型检查的简写
  5. propA: Number,
  6. // 多种可能类型的简写
  7. propB: [String, Number],
  8. // 必填的字符串
  9. propC: {
  10. type: String,
  11. required: true
  12. },
  13. // 带默认值的数字
  14. propD: {
  15. type: Number,
  16. default: 100
  17. },
  18. // 带有默认值的对象
  19. propE: {
  20. type: Object,
  21. default () {
  22. return { message: 'hello' }
  23. }
  24. },
  25. // 自定义验证函数
  26. propF: {
  27. validator (value) {
  28. return value === 'hello'
  29. }
  30. }
  31. }
  32. }
  33. </script>

计算属性 1050+

  • 类型:{ [key: string]: Function | { get: Function, set: Function } }
  • 详细:计算属性将被混入到 Vm 实例中。所有 getter 和 setter 的 this 上下文自动地绑定为 Vm 实例。计算属性的结果会被缓存,除非依赖的响应式属性变化才会重新计算。注意,如果某个依赖 (比如非响应式属性) 在该实例范畴之外,则计算属性是不会被更新的。

示例:

  1. export default {
  2. data: {
  3. firstName: 'Quick',
  4. lastName: 'App'
  5. },
  6. computed: {
  7. fullName: {
  8. get () {
  9. return `${this.firstName} ${this.lastName}`
  10. },
  11. set (value) {
  12. const names = value.split(' ')
  13. this.firstName = names[0]
  14. this.lastName = names[names.length - 1]
  15. }
  16. }
  17. },
  18. onReady () {
  19. console.log(this.fullName) // Quick App
  20. this.fullName = 'John Doe'
  21. console.log(this.firstName) // John
  22. console.log(this.lastName) // Doe
  23. }
  24. }

公共对象

属性类型描述
$appObject应用对象
$pageObject页面对象
$validBoolean页面对象是否有效
$visibleBoolean页面是否处于用户可见状态

应用对象

可通过$app访问

属性类型描述
$defObject使用this.$app.$def获取在app.ux中暴露的对象
$dataObject使用this.$app.$data获取在manifest.jsonconfig.data中声明的全局数据

页面对象

可通过$page访问

属性类型描述
actionString获取打开当前页面的 action。仅在当前页面是通过 filter 匹配的方式打开时有效,否则为 undefined。参见manifest 文件
uriString获取打开当前页面的 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获取当前页面可使用窗口高度