提交 a821048a 编写于 作者: fxy060608's avatar fxy060608

Merge branch 'dev' of https://github.com/dcloudio/uni-app into dev

......@@ -624,12 +624,12 @@ export default {
|-- |-- |-- |-- |-- |-- |
|Vue.config.silent |支持 |支持 |支持 |支持 |- |
|Vue.config.optionMergeStrategies |支持 |支持 |支持 |支持 |- |
|Vue.config.devtools |支持 |不支持 |不支持 |不支持 |只在`Web`环境下支持 |
|Vue.config.devtools |支持 |× |× |× |只在`Web`环境下支持 |
|Vue.config.errorHandler |支持 |支持 |支持 |支持 |- |
|Vue.config.warnHandler |支持 |支持 |支持 |支持 |- |
|Vue.config.ignoredElements |支持 |支持 |支持 |支持 |强烈不推荐,会覆盖`uni-app`框架配置的内置组件|
|Vue.config.keyCodes |支持 |不支持 |不支持 |不支持 |- |
|Vue.config.performance |支持 |不支持 |不支持 |不支持 |只在`Web`环境下支持 |
|Vue.config.ignoredElements |支持 |支持 |支持 |支持 |`强烈不推荐`,会覆盖`uni-app`框架配置的内置组件|
|Vue.config.keyCodes |支持 |× |× |× |- |
|Vue.config.performance |支持 |× |× |× |只在`Web`环境下支持 |
|Vue.config.productionTip |支持 |支持 |支持 |支持 |- |
......@@ -637,17 +637,17 @@ export default {
|Vue 全局 API |H5 |App端旧版|App端V3|微信小程序|说明 |
|-- |-- |-- |-- |-- |-- |
|Vue.extend |支持 |不支持 |支持 |不支持 |不可作为组件使用 |
|Vue.nextTick |支持 |不支持 |不支持 |不支持 |- |
|Vue.extend |支持 |× |支持 |× |不可作为组件使用 |
|Vue.nextTick |支持 |× |× |× |- |
|Vue.set |支持 |支持 |支持 |支持 |- |
|Vue.delete |支持 |支持 |支持 |支持 |- |
|Vue.directive|支持 |不支持 |支持 |不支持 |- |
|Vue.filter |支持 |支持 |支持 |支持 |App端旧版不可以在`class`中使用 |
|Vue.directive|支持 |× |支持 |× |- |
|Vue.filter |支持 |支持 |支持 |支持 |`App端旧版`不可以在`class`中使用 |
|Vue.component|支持 |支持 |支持 |支持 |- |
|Vue.use |支持 |支持 |支持 |支持 |- |
|Vue.mixin |支持 |支持 |支持 |支持 |- |
|Vue.version |支持 |支持 |支持 |支持 |- |
|Vue.compile |支持 |不支持 |不支持 |不支持 |`uni-app`使用的`vue`是只包含运行时的版本 |
|Vue.compile |支持 |× |× |× |`uni-app`使用的`vue`是只包含运行时的版本 |
#### 选项
......@@ -655,28 +655,28 @@ export default {
|Vue 选项 |H5 |App端旧版|App端V3|微信小程序|说明 |
|-- |-- |-- |-- |-- |-- |
|data |支持 |支持 |支持 |支持 |- |
|props |支持 |支持 |支持 |支持 |App端旧版不可以传递函数 |
|props |支持 |支持 |支持 |支持 |`App端旧版`不可以传递函数 |
|propsData |支持 |支持 |支持 |支持 |- |
|computed |支持 |支持 |支持 |支持 |- |
|methods |支持 |支持 |支持 |支持 |- |
|watch |支持 |支持 |支持 |支持 |- |
|el |支持 |不支持 |不支持 |不支持 | |
|template |支持 |不支持 |不支持 |不支持 |`uni-app`使用的`vue`是只包含运行时的版本 |
|render |支持 |不支持 |不支持 |不支持 |- |
|renderError |支持 |不支持 |不支持 |不支持 |- |
|directives |支持 |不支持 |支持 |不支持 |- |
|filters |支持 |支持 |支持 |支持 |App端旧版不可以在`class`中使用 |
|el |支持 |× |× |× | |
|template |支持 |× |× |× |`uni-app`使用的`vue`是只包含运行时的版本 |
|render |支持 |× |× |× |- |
|renderError |支持 |× |× |× |- |
|directives |支持 |× |支持 |× |- |
|filters |支持 |支持 |支持 |支持 |`App端旧版`不可以在`class`中使用 |
|components |支持 |支持 |支持 |支持 |- |
|parent |支持 |支持 |支持 |支持 |不推荐 |
|mixins |支持 |支持 |支持 |支持 |- |
|extends |支持 |支持 |支持 |支持 |- |
|provide/inject |支持 |支持 |支持 |支持 |App端旧版部分支持 |
|name |支持 |支持 |支持 |支持 |App端旧版不支持递归组件 |
|delimiters |支持 |不支持 |不支持 |不支持 |- |
|functional |支持 |不支持 |不支持 |不支持 |- |
|model |支持 |不支持 |支持 |不支持 |- |
|inheritAttrs |支持 |不支持 |支持 |不支持 |- |
|comments |支持 |不支持 |不支持 |不支持 |- |
|provide/inject |支持 |支持 |支持 |支持 |`App端旧版`部分支持 |
|name |支持 |支持 |支持 |支持 |`App端旧版`不支持递归组件 |
|delimiters |支持 |× |× |× |- |
|functional |支持 |× |× |× |- |
|model |支持 |× |支持 |× |- |
|inheritAttrs |支持 |× |支持 |× |- |
|comments |支持 |× |× |× |- |
#### 生命周期钩子
......@@ -689,8 +689,8 @@ export default {
|mounted |支持 |支持 |支持 |支持 |- |
|beforeUpdate |支持 |支持 |支持 |支持 |- |
|updated |支持 |支持 |支持 |支持 |- |
|activated |支持 |不支持 |支持 |不支持 |- |
|deactivated |支持 |不支持 |支持 |不支持 |- |
|activated |支持 |× |支持 |× |- |
|deactivated |支持 |× |支持 |× |- |
|beforeDestroy |支持 |支持 |支持 |支持 |- |
|destroyed |支持 |支持 |支持 |支持 |- |
|errorCaptured |支持 |支持 |支持 |支持 |- |
......@@ -701,17 +701,17 @@ export default {
|-- |-- |-- |-- |-- |-- |
|vm.$data |支持 |支持 |支持 |支持 |- |
|vm.$props |支持 |支持 |支持 |支持 |- |
|vm.$el |支持 |不支持 |不支持 |不支持 |- |
|vm.$el |支持 |× |× |× |- |
|vm.$options |支持 |支持 |支持 |支持 |- |
|vm.$parent |支持 |支持 |支持 |支持 |H5端 `view`、`text` 等内置标签是以 Vue 组件方式实现,`$parent` 会获取这些内置组件 |
|vm.$parent |支持 |支持 |支持 |支持 |`H5端`:`view`、`text` 等内置标签是以 Vue 组件方式实现,`$parent` 会获取这些内置组件 |
|vm.$root |支持 |支持 |支持 |支持 |- |
|vm.$children |支持 |支持 |支持 |支持 |H5端 `view`、`text` 等内置标签是以 Vue 组件方式实现,`$children` 会获取这些内置组件|
|vm.$slots |支持 |支持 |不支持 |支持 |App端旧版获取值为`{'slotName':true/false}`比如:`{"footer":true}` |
|vm.$scopedSlots|支持 |支持 |支持 |支持 |App端旧版获取值为`{'slotName':true/false}`比如:`{"footer":true}` |
|vm.$refs |支持 |支持 |支持 |支持 |非H5端只能用于获取自定义组件,不能用于获取内置组件实例(如:view、text)|
|vm.$isServer |支持 |不支持 |支持 |不支持 |App端V3总是返回false |
|vm.$attrs |支持 |不支持 |支持 |不支持 |- |
|vm.$listeners |支持 |不支持 |支持 |不支持 |- |
|vm.$children |支持 |支持 |支持 |支持 |`H5端`:`view`、`text` 等内置标签是以 Vue 组件方式实现,`$children` 会获取这些内置组件|
|vm.$slots |支持 |支持 |× |支持 |`App端旧版`:获取值为`{'slotName':true/false}`比如:`{"footer":true}` |
|vm.$scopedSlots|支持 |支持 |支持 |支持 |`App端旧版`:获取值为`{'slotName':true/false}`比如:`{"footer":true}` |
|vm.$refs |支持 |支持 |支持 |支持 |`非H5端`只能用于获取自定义组件,不能用于获取内置组件实例(如:view、text)|
|vm.$isServer |支持 |× |支持 |× |`App端V3`总是返回false |
|vm.$attrs |支持 |× |支持 |× |- |
|vm.$listeners |支持 |× |支持 |× |- |
#### 实例方法
......@@ -725,7 +725,7 @@ export default {
|vm.$once() |支持 |支持 |支持 |支持 |- |
|vm.$off() |支持 |支持 |支持 |支持 |- |
|vm.$emit() |支持 |支持 |支持 |支持 |- |
|vm.$mount() |支持 |不支持 |不支持 |不支持 |- |
|vm.$mount() |支持 |× |× |× |- |
|vm.$forceUpdate()|支持 |支持 |支持 |支持 |- |
|vm.$nextTick() |支持 |支持 |支持 |支持 |- |
|vm.$destroy() |支持 |支持 |支持 |支持 |- |
......@@ -733,38 +733,38 @@ export default {
#### 模板指令
|Vue 指令 |H5 |App端旧版|App端V3|微信小程序|说明 |
|Vue 指令|H5|App端旧版|App端V3|微信小程序|说明 |
|-- |-- |-- |-- |-- |-- |
|v-text |支持 |支持 |支持 |支持 |- |
|v-html |支持 |不支持 |支持 |不支持 |- |
|v-html |支持 |× |支持 |× |- |
|v-show |支持 |支持 |支持 |支持 |- |
|v-if |支持 |支持 |支持 |支持 |- |
|v-else |支持 |支持 |支持 |支持 |- |
|v-else-if|支持 |支持 |支持 |支持 |- |
|v-for |支持 |支持 |支持 |支持 |- |
|v-on |支持 |支持 |支持 |支持 |- |
|v-bind |支持 |支持 |支持 |支持 |App端旧版不支持`v-bind="{key:value}"`类似用法|
|v-bind |支持 |支持 |支持 |支持 |`App端旧版`和`微信小程序`不支持`v-bind="{key:value}"`类似用法|
|v-model |支持 |支持 |支持 |支持 |- |
|v-pre |支持 |不支持 |支持 |不支持 |- |
|v-cloak |支持 |不支持 |不支持 |不支持 |- |
|v-once |支持 |不支持 |支持 |不支持 |- |
|v-pre |支持 |× |支持 |× |- |
|v-cloak |支持 |× |× |× |- |
|v-once |支持 |× |支持 |× |- |
#### 特殊属性
|Vue 特殊属性 |H5 |App端旧版|App端V3|微信小程序|说明 |
|-- |-- |-- |-- |-- |-- |
|key |支持 |支持 |支持 |支持 |App端旧版不支持表达式|
|key |支持 |支持 |支持 |支持 |`App端旧版`不支持表达式|
|ref |支持 |支持 |支持 |支持 |- |
|is |支持 |不支持 |支持 |不支持 |- |
|is |支持 |× |支持 |× |- |
#### 内置组件
|Vue 内置组件 |H5 |App端旧版|App端V3|微信小程序 |说明 |
|-- |-- |-- |-- |-- |-- |
|component |支持 |不支持 |支持 |不支持 |- |
|transition |支持 |不支持 |不支持 |不支持 |- |
|transition-group |支持 |不支持 |不支持 |不支持 |- |
|keep-alive |支持 |不支持 |支持 |不支持 |- |
|component |支持 |× |支持 |× |- |
|transition |支持 |× |× |× |- |
|transition-group |支持 |× |× |× |- |
|keep-alive |支持 |× |支持 |× |- |
|slot |支持 |支持 |支持 |支持 |- |
......@@ -246,7 +246,7 @@ function processCss(css) {
.replace(VAR_WINDOW_LEFT, '0px')
.replace(VAR_WINDOW_RIGHT, '0px')
}
return css.replace(/\{[\s\S]+?\}/g, function (css) {
return css.replace(/\{[\s\S]+?\}|@media.+\{/g, function (css) {
return css.replace(UPX_RE, function (a, b) {
return uni.upx2px(b) + 'px'
})
......
......@@ -245,17 +245,17 @@ function processCss(css) {
var offset = getWindowOffset()
css = css.replace(VAR_STATUS_BAR_HEIGHT, '0px')
.replace(VAR_WINDOW_TOP, offset.top + 'px')
.replace(VAR_WINDOW_BOTTOM, offset.bottom + 'px')
.replace(VAR_WINDOW_LEFT, '0px')
.replace(VAR_WINDOW_BOTTOM, offset.bottom + 'px')
.replace(VAR_WINDOW_LEFT, '0px')
.replace(VAR_WINDOW_RIGHT, '0px')
}
return css
.replace(BODY_SCOPED_RE, page)
.replace(BODY_RE, '')
.replace(PAGE_SCOPED_RE, 'body.' + page + ' uni-page-body')
.replace(/\{[\s\S]+?\}/g, function (css) {
if(typeof uni === 'undefined'){
return css
.replace(/\{[\s\S]+?\}|@media.+\{/g, function (css) {
if(typeof uni === 'undefined'){
return css
}
return css.replace(UPX_RE, function (a, b) {
return uni.upx2px(b) + 'px'
......
......@@ -57,8 +57,8 @@ if (process.env.UNI_USING_V3) {
)
}
const tranformValue = function (decl, opts) {
return valueParser(decl.value)
const tranformValue = function (value, opts) {
return valueParser(value)
.walk(node => {
if (node.type === 'word') {
parseWord(node, opts)
......@@ -205,10 +205,16 @@ if (process.env.UNI_USING_V3) {
}
}
// Transform each property declaration here
decl.value = tranformValue(decl, opts)
decl.value = tranformValue(decl.value, opts)
})
})
root.walkAtRules(rule => {
if (rule.name === 'media') {
rule.params = tranformValue(rule.params, opts)
}
})
if (bgDecls.length) {
const rule = postcss.rule({
selector: 'body.?%PAGE?%'
......@@ -240,7 +246,7 @@ if (process.env.UNI_USING_V3) {
}
}
// Transform each property declaration here
decl.value = tranformValue(decl, opts)
decl.value = tranformValue(decl.value, opts)
})
if (process.env.UNI_PLATFORM !== 'quickapp-native') {
rule.selectors = rule.selectors.map(complexSelector => {
......
......@@ -30,7 +30,7 @@ function parseTitleNViewButtons (titleNView) {
export function parseTitleNView (routeOptions) {
const windowOptions = routeOptions.window
const titleNView = windowOptions.titleNView
const titleNView = windowOptions.titleNView
routeOptions.meta.statusBarStyle = windowOptions.navigationBarTextStyle === 'black' ? 'dark' : 'light'
if ( // 无头
titleNView === false ||
......@@ -54,12 +54,13 @@ export function parseTitleNView (routeOptions) {
always: 'float'
}
const navigationBarBackgroundColor = windowOptions.navigationBarBackgroundColor
const ret = {
autoBackButton: !routeOptions.meta.isQuit,
titleText: titleImage === '' ? windowOptions.navigationBarTitleText || '' : '',
titleColor: windowOptions.navigationBarTextStyle === 'black' ? '#000000' : '#ffffff',
type: titleNViewTypeList[transparentTitle],
backgroundColor: windowOptions.navigationBarBackgroundColor || '#f8f8f8',
backgroundColor: (/^#[a-z0-9]{6}$/i.test(navigationBarBackgroundColor) || navigationBarBackgroundColor === 'transparent') ? navigationBarBackgroundColor : '#f7f7f7',
tags: titleImage === '' ? [] : [{
tag: 'img',
src: titleImage,
......@@ -77,4 +78,4 @@ export function parseTitleNView (routeOptions) {
}
return ret
}
}
......@@ -45,7 +45,7 @@ export function parseWebviewStyle (id, path, routeOptions = {}) {
})
const backgroundColor = routeOptions.window.backgroundColor
if (backgroundColor) {
if (/^#[a-z0-9]{6}$/i.test(backgroundColor) || backgroundColor === 'transparent') {
if (!webviewStyle.background) {
webviewStyle.background = backgroundColor
}
......@@ -94,4 +94,4 @@ export function parseWebviewStyle (id, path, routeOptions = {}) {
}
return webviewStyle
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册