提交 0d6195bd 编写于 作者: W wanganxp
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
......@@ -19,6 +19,7 @@ app-android平台,可使用本API监听应用权限申请确认框的弹出和
+ 如果权限已经申请并且允许之后,`onConfirm`不会触发。
+ 如果同时申请多个权限时,`onComplete`可能会触发多次。
+ uni-app x 中如果请求一个已经被永久拒绝的权限,可能会触发`onConfirm`,建议做延时处理。
<!-- UTSAPIJSON.createRequestPermissionListener.example -->
......
......@@ -41,10 +41,18 @@ uni-app x支持的组件包括:
## props
- 支持[对象方式](https://cn.vuejs.org/guide/components/props.html#props-declaration)声明。从4.0版本qi支持字符串数组方式声明
- 支持[对象方式](https://cn.vuejs.org/guide/components/props.html#props-declaration)声明。从4.0+ 支持字符串数组方式声明。使用字符串数组方式声明时,所有 prop 类型均为 any | null
- 仅支持直接在 `export default` 内部声明,不支持其他位置定义后,在 `export default` 中引用。
- 复杂数据类型需要通过 `PropType` 标记类型,[详见](https://cn.vuejs.org/guide/typescript/options-api.html#typing-component-props)
- `type` 不支持使用自定义的构造函数。
```ts
export default {
// 字符串数组方式声明,所有 prop 类型均为 any | null
props: ['num', 'str', 'obj', 'arr']
}
```
```ts
type Obj = { a: number }
......@@ -75,7 +83,7 @@ export default {
## 自定义组件 v-model 绑定复杂表达式 @v-model-complex-expression
自定义组件 `v-model` 绑定复杂表达式时,需要通过 `as` 指定类型。
自定义组件 `v-model` 绑定复杂表达式时,需要通过 `as` 指定类型(仅App-Android 平台)
```ts
<template>
......@@ -97,15 +105,10 @@ export default {
}
</script>
```
## 自定义事件
- [v-model](https://uniapp.dcloud.io/tutorial/vue3-components.html#v-model-modifiers) 暂不支持 `capitalize` 修饰符。
## 计算属性和侦听器
- [watch deep](https://uniapp.dcloud.net.cn/tutorial/vue3-basics.html#%E9%80%89%E9%A1%B9-deep) 不支持
- [监听对象中单个属性](https://uniapp.dcloud.net.cn/tutorial/vue3-basics.html#%E7%9B%91%E5%90%AC%E5%AF%B9%E8%B1%A1%E4%B8%AD%E5%8D%95%E4%B8%AA%E5%B1%9E%E6%80%A7) 不支持
- [watch deep](https://uniapp.dcloud.net.cn/tutorial/vue3-basics.html#%E9%80%89%E9%A1%B9-deep) 不支持(仅App-Android 平台, 4.0 将支持)
- [监听对象中单个属性](https://uniapp.dcloud.net.cn/tutorial/vue3-basics.html#%E7%9B%91%E5%90%AC%E5%AF%B9%E8%B1%A1%E4%B8%AD%E5%8D%95%E4%B8%AA%E5%B1%9E%E6%80%A7) 不支持(仅App-Android 平台, 4.0 将支持)
## 作用域插槽的类型
......@@ -192,7 +195,7 @@ export default {
## 监听页面生命周期
目前暂不支持在组件内监听页面生命周期,待后续支持组合式 API 后,可通过组合式 API 实现
`4.0` 起可通过组合式 API 实现组件中监听页面生命周期
## vue 与 uvue 不同文件后缀的优先级 @priority
......
......@@ -224,21 +224,9 @@ App仅对同层的兄弟节点之间支持z-index来调节层级。不支持脱
字体图标[详见](font-family.md)
## 选择器
|类别 |示例 |App支持情况 |备注 |
|:-: |:-: |:-: |:-: |
|通配选择器 |* {} |× | |
|类选择器 |.class {} |√ | |
|元素选择器 |tag {} |× | |
|ID 选择器 |#id {} |× | |
|属性选择器 |[attr] {} |× | |
|分组选择器 |.a, .b {} |√ | |
|直接子代选择器 |.a > .b {} |√ | |
|后代选择器 |.a .b {} |√ | |
|一般兄弟选择器 |.a ~ .b {} |√ | |
|紧邻兄弟选择器 |.a + .b {} |√ | |
|伪类选择器 |:active {} |× | |
|伪元素选择器 |::before {}|× | |
## 选择器 @selector
<!-- CSSJSON.selector_values.compatibility -->
注意,选择器声明的变化可能会导致元素重新绘制。为了减少选择器变化引起的 DOM 更新数量,**当前只支持:CSS 声明的多个选择器中最后一个规则的变更对 DOM 的更新**
......@@ -281,20 +269,7 @@ App仅对同层的兄弟节点之间支持z-index来调节层级。不支持脱
- 长度 `<length>` 用于表示距离尺寸的 CSS 数据类型。许多 CSS 属性会用到长度,比如 width、margin、padding。
- 长度 `<percentage>` 表述一个百分比值。许多 CSS 属性 可以取百分比值,用以根据父对象来确定大小。百分比值由一个`<number>`具体数值后跟着%符号构成。就像其他在 css 里的单位一样,在%和数值之间是不允许有空格的。
|类别 |App支持情况 |备注 |
|:-: |:-: |:-: |
|px |√ | |
|rpx |√ | |
|百分比 |√ |仅支持width、height、padding、margin、top、left、right、bottom、flex-basis|
|rem | | |
|em |√ |仅支持line-height |
|vw | | |
|vh | | |
|vmin | | |
|vmax | | |
|ratio | | |
|env() | | |
|calc() | | |
<!-- CSSJSON.length_values.compatibility -->
rpx是一个以设备750px为基准的单位,750rpx即为屏幕宽度,375rpx即为屏幕一半宽度。它比较适合适配不同宽度的手机。但rpx的性能和精度不如px,如果px可满足需求,尽量使用px。
......@@ -312,17 +287,9 @@ px、rpx属于逻辑像素,在不同dpi的设备上,需要转换为物理像
rpx和百分比,比px更容易产生浮点数,所以如果px能满足需求,尽量不用rpx和百分比。
## 颜色 @color
## 颜色
|类别 |App支持情况 |备注 |
|:-: |:-: |:-: |
|color keywords |√ |red等 |
|#RRGGBB / #RGB |√ | |
|rgb[a] |√ | |
|transparent |√ | |
|currentColor | | |
|hsl | | |
|hsla | | |
<!-- CSSJSON.color_values.compatibility -->
## css方法
......
......@@ -69,14 +69,34 @@ export function createApp() {
## 组合式 API @composition-api
**注意:**
- 暂不支持 `<script setup>``<script>` 同时使用,如果需要配置 `options` 内容,比如 `name`,可以使用 `defineOptions`
- 暂不支持顶层 `await`
- 暂不支持 `<script setup>` 配置 `generic` 泛型类型参数。
- `App.uvue` 暂不支持组合式 API。
### 响应式: 核心
<!-- VUEJSON.reactivity_core.compatibility -->
<!-- VUEJSON.reactivity_core.example -->
**注意:**
- `computed` 需通过泛型指定返回值类型。
```ts
const count = ref(0)
const doubleCount = computed<number>(() : number => {
return count.value * 2
})
```
### 响应式: 工具
<!-- VUEJSON.reactivity_utilities.compatibility -->
<!-- VUEJSON.reactivity_utilities.example -->
**注意:**
- `toRefs` 仅支持 `Array``UTSJSONObject`, 不支持自定义类型。
### 响应式: 进阶
<!-- VUEJSON.reactivity_advanced.compatibility -->
......@@ -362,6 +382,102 @@ export default {
<!-- VUEJSON.single_file_component_script.compatibility -->
**注意:**
- `defineProps` 仅支持数组字面量、对象字面量定义(等同于 `options` 中的 `props`规则)及使用纯类型参数的方式来声明。
```ts
// 数组字面量
defineProps(['str', 'num', 'bool', 'arr', 'obj', 'fn'])
// 对象字面量
defineProps({
str: String,
num: Number,
bool: {
type: Boolean,
default: true
},
arr: {
type: Array as PropType<string[]>,
default: () : string[] => [] as string[]
},
obj: {
type: Object as PropType<UTSJSONObject>,
default: () : UTSJSONObject => ({ a: 1 })
},
fn: {
type: Function as PropType<() => string>,
default: () : string => ''
}
})
// 纯类型参数
defineProps<{
str : String,
num : Number,
bool : Boolean,
arr : PropType<string[]>,
obj : PropType<UTSJSONObject>,
fn : PropType<() => string>
}>()
```
- `defineEmits` 仅支持数组字面量和纯类型参数的方式来声明。
```ts
// 数组字面量
const emit = defineEmits(['change'])
// 纯类型参数
const emit = defineEmits<{
(e : 'change', id : number) : void
}>()
const emit = defineEmits<{
// 具名元组语法
change : [id: number]
}>()
```
- `defineOptions` 仅支持对象字面量方式定义。
```ts
defineOptions({
data() {
return {
count: 0,
price: 10,
total: 0
}
},
computed: {
doubleCount() : number {
return this.count * 2
},
},
watch: {
count() {
this.total = this.price * this.count
},
},
methods: {
increment() {
this.count++
}
}
})
```
- `defineExpose` 仅支持对象字面量方式定义,导出的变量或方法,必须是 `setup` 中定义的,暂不支持外部定义。
```ts
<script setup>
const str = 'str'
const num = ref(0)
const increment = () => {
num.value++
}
defineExpose({
str,
num,
increment
})
</script>
```
## 其他示例
......
......@@ -15,6 +15,7 @@ uni-app x编译到web端时遵循vue规范,目前有部分vue特性暂不支
- 组合式API:`defineOptions``defineModel``toValue``toRef``toRefs``hasInjectionContext`
- 指令:`v-once``v-memo`
- render函数
- 不支持组件中监听页面 `onPageScroll``onReachBottom` 生命周期
部分支持的特性
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册