Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CoderSmallfan
uni-app
提交
849687ff
U
uni-app
项目概览
CoderSmallfan
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
849687ff
编写于
4月 18, 2019
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
build uni runtime (extends,mixins 支持 props )
上级
8308f875
变更
10
显示空白变更内容
内联
并排
Showing
10 changed file
with
163 addition
and
27 deletion
+163
-27
packages/uni-app-plus/dist/index.js
packages/uni-app-plus/dist/index.js
+32
-5
packages/uni-app-plus/package.json
packages/uni-app-plus/package.json
+1
-1
packages/uni-mp-baidu/dist/index.js
packages/uni-mp-baidu/dist/index.js
+32
-5
packages/uni-mp-baidu/package.json
packages/uni-mp-baidu/package.json
+1
-1
packages/uni-mp-toutiao/dist/index.js
packages/uni-mp-toutiao/dist/index.js
+32
-5
packages/uni-mp-toutiao/package.json
packages/uni-mp-toutiao/package.json
+1
-1
packages/uni-mp-weixin/dist/index.js
packages/uni-mp-weixin/dist/index.js
+32
-5
packages/uni-mp-weixin/package.json
packages/uni-mp-weixin/package.json
+1
-1
src/core/runtime/wrapper/create-component.js
src/core/runtime/wrapper/create-component.js
+4
-0
src/core/runtime/wrapper/util.js
src/core/runtime/wrapper/util.js
+27
-3
未找到文件。
packages/uni-app-plus/dist/index.js
浏览文件 @
849687ff
...
...
@@ -366,9 +366,33 @@ function createObserver (name) {
}
}
function
getProperties
(
props
)
{
const
properties
=
{
vueSlots
:
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
function
getBehaviors
(
vueExtends
,
vueMixins
)
{
const
behaviors
=
[];
if
(
isPlainObject
(
vueExtends
)
&&
vueExtends
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueExtends
.
props
,
true
)
})
);
}
if
(
Array
.
isArray
(
vueMixins
))
{
vueMixins
.
forEach
(
vueMixin
=>
{
if
(
isPlainObject
(
vueMixin
)
&&
vueMixin
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueMixin
.
props
,
true
)
})
);
}
});
}
return
behaviors
}
function
getProperties
(
props
,
isBehavior
=
false
)
{
const
properties
=
{};
if
(
!
isBehavior
)
{
properties
.
vueSlots
=
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
type
:
null
,
value
:
[],
observer
:
function
(
newVal
,
oldVal
)
{
...
...
@@ -380,8 +404,8 @@ function getProperties (props) {
$slots
});
}
}
};
}
if
(
Array
.
isArray
(
props
))
{
// ['title']
props
.
forEach
(
key
=>
{
properties
[
key
]
=
{
...
...
@@ -849,6 +873,8 @@ function createComponent (vueOptions) {
const
properties
=
getProperties
(
vueOptions
.
props
);
const
behaviors
=
getBehaviors
(
vueOptions
[
'
extends
'
],
vueOptions
[
'
mixins
'
]);
const
VueComponent
=
Vue
.
extend
(
vueOptions
);
const
componentOptions
=
{
...
...
@@ -857,6 +883,7 @@ function createComponent (vueOptions) {
addGlobalClass
:
true
},
data
:
getData
(
vueOptions
,
Vue
.
prototype
),
behaviors
,
properties
,
lifetimes
:
{
attached
()
{
...
...
packages/uni-app-plus/package.json
浏览文件 @
849687ff
{
"name"
:
"@dcloudio/uni-app-plus"
,
"version"
:
"0.0.22
0
"
,
"version"
:
"0.0.22
1
"
,
"description"
:
"uni-app app-plus"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
packages/uni-mp-baidu/dist/index.js
浏览文件 @
849687ff
...
...
@@ -501,9 +501,33 @@ function createObserver (name) {
}
}
function
getProperties
(
props
)
{
const
properties
=
{
vueSlots
:
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
function
getBehaviors
(
vueExtends
,
vueMixins
)
{
const
behaviors
=
[];
if
(
isPlainObject
(
vueExtends
)
&&
vueExtends
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueExtends
.
props
,
true
)
})
);
}
if
(
Array
.
isArray
(
vueMixins
))
{
vueMixins
.
forEach
(
vueMixin
=>
{
if
(
isPlainObject
(
vueMixin
)
&&
vueMixin
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueMixin
.
props
,
true
)
})
);
}
});
}
return
behaviors
}
function
getProperties
(
props
,
isBehavior
=
false
)
{
const
properties
=
{};
if
(
!
isBehavior
)
{
properties
.
vueSlots
=
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
type
:
null
,
value
:
[],
observer
:
function
(
newVal
,
oldVal
)
{
...
...
@@ -515,8 +539,8 @@ function getProperties (props) {
$slots
});
}
}
};
}
if
(
Array
.
isArray
(
props
))
{
// ['title']
props
.
forEach
(
key
=>
{
properties
[
key
]
=
{
...
...
@@ -1016,6 +1040,8 @@ function createComponent (vueOptions) {
const
properties
=
getProperties
(
vueOptions
.
props
);
const
behaviors
=
getBehaviors
(
vueOptions
[
'
extends
'
],
vueOptions
[
'
mixins
'
]);
const
VueComponent
=
Vue
.
extend
(
vueOptions
);
const
componentOptions
=
{
...
...
@@ -1024,6 +1050,7 @@ function createComponent (vueOptions) {
addGlobalClass
:
true
},
data
:
getData
(
vueOptions
,
Vue
.
prototype
),
behaviors
,
properties
,
lifetimes
:
{
attached
()
{
...
...
packages/uni-mp-baidu/package.json
浏览文件 @
849687ff
{
"name"
:
"@dcloudio/uni-mp-baidu"
,
"version"
:
"0.0.81
5
"
,
"version"
:
"0.0.81
6
"
,
"description"
:
"uni-app mp-baidu"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
packages/uni-mp-toutiao/dist/index.js
浏览文件 @
849687ff
...
...
@@ -546,9 +546,33 @@ function createObserver (name) {
}
}
function
getProperties
(
props
)
{
const
properties
=
{
vueSlots
:
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
function
getBehaviors
(
vueExtends
,
vueMixins
)
{
const
behaviors
=
[];
if
(
isPlainObject
(
vueExtends
)
&&
vueExtends
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueExtends
.
props
,
true
)
})
);
}
if
(
Array
.
isArray
(
vueMixins
))
{
vueMixins
.
forEach
(
vueMixin
=>
{
if
(
isPlainObject
(
vueMixin
)
&&
vueMixin
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueMixin
.
props
,
true
)
})
);
}
});
}
return
behaviors
}
function
getProperties
(
props
,
isBehavior
=
false
)
{
const
properties
=
{};
if
(
!
isBehavior
)
{
properties
.
vueSlots
=
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
type
:
null
,
value
:
[],
observer
:
function
(
newVal
,
oldVal
)
{
...
...
@@ -560,8 +584,8 @@ function getProperties (props) {
$slots
});
}
}
};
}
if
(
Array
.
isArray
(
props
))
{
// ['title']
props
.
forEach
(
key
=>
{
properties
[
key
]
=
{
...
...
@@ -1040,6 +1064,8 @@ function createComponent (vueOptions) {
const
properties
=
getProperties
(
vueOptions
.
props
);
const
behaviors
=
getBehaviors
(
vueOptions
[
'
extends
'
],
vueOptions
[
'
mixins
'
]);
const
VueComponent
=
Vue
.
extend
(
vueOptions
);
const
componentOptions
=
{
...
...
@@ -1048,6 +1074,7 @@ function createComponent (vueOptions) {
addGlobalClass
:
true
},
data
:
getData
(
vueOptions
,
Vue
.
prototype
),
behaviors
,
properties
,
lifetimes
:
{
attached
()
{
...
...
packages/uni-mp-toutiao/package.json
浏览文件 @
849687ff
{
"name"
:
"@dcloudio/uni-mp-toutiao"
,
"version"
:
"0.0.31
5
"
,
"version"
:
"0.0.31
6
"
,
"description"
:
"uni-app mp-toutiao"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
packages/uni-mp-weixin/dist/index.js
浏览文件 @
849687ff
...
...
@@ -393,9 +393,33 @@ function createObserver (name) {
}
}
function
getProperties
(
props
)
{
const
properties
=
{
vueSlots
:
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
function
getBehaviors
(
vueExtends
,
vueMixins
)
{
const
behaviors
=
[];
if
(
isPlainObject
(
vueExtends
)
&&
vueExtends
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueExtends
.
props
,
true
)
})
);
}
if
(
Array
.
isArray
(
vueMixins
))
{
vueMixins
.
forEach
(
vueMixin
=>
{
if
(
isPlainObject
(
vueMixin
)
&&
vueMixin
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueMixin
.
props
,
true
)
})
);
}
});
}
return
behaviors
}
function
getProperties
(
props
,
isBehavior
=
false
)
{
const
properties
=
{};
if
(
!
isBehavior
)
{
properties
.
vueSlots
=
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
type
:
null
,
value
:
[],
observer
:
function
(
newVal
,
oldVal
)
{
...
...
@@ -407,8 +431,8 @@ function getProperties (props) {
$slots
});
}
}
};
}
if
(
Array
.
isArray
(
props
))
{
// ['title']
props
.
forEach
(
key
=>
{
properties
[
key
]
=
{
...
...
@@ -869,6 +893,8 @@ function createComponent (vueOptions) {
const
properties
=
getProperties
(
vueOptions
.
props
);
const
behaviors
=
getBehaviors
(
vueOptions
[
'
extends
'
],
vueOptions
[
'
mixins
'
]);
const
VueComponent
=
Vue
.
extend
(
vueOptions
);
const
componentOptions
=
{
...
...
@@ -877,6 +903,7 @@ function createComponent (vueOptions) {
addGlobalClass
:
true
},
data
:
getData
(
vueOptions
,
Vue
.
prototype
),
behaviors
,
properties
,
lifetimes
:
{
attached
()
{
...
...
packages/uni-mp-weixin/package.json
浏览文件 @
849687ff
{
"name"
:
"@dcloudio/uni-mp-weixin"
,
"version"
:
"0.0.9
39
"
,
"version"
:
"0.0.9
40
"
,
"description"
:
"uni-app mp-weixin"
,
"main"
:
"dist/index.js"
,
"scripts"
:
{
...
...
src/core/runtime/wrapper/create-component.js
浏览文件 @
849687ff
...
...
@@ -9,6 +9,7 @@ import {
import
{
getData
,
handleEvent
,
getBehaviors
,
getProperties
}
from
'
./util
'
...
...
@@ -44,6 +45,8 @@ export function createComponent (vueOptions) {
const
properties
=
getProperties
(
vueOptions
.
props
)
const
behaviors
=
getBehaviors
(
vueOptions
[
'
extends
'
],
vueOptions
[
'
mixins
'
])
const
VueComponent
=
Vue
.
extend
(
vueOptions
)
const
componentOptions
=
{
...
...
@@ -52,6 +55,7 @@ export function createComponent (vueOptions) {
addGlobalClass
:
true
},
data
:
getData
(
vueOptions
,
Vue
.
prototype
),
behaviors
,
properties
,
lifetimes
:
{
attached
()
{
...
...
src/core/runtime/wrapper/util.js
浏览文件 @
849687ff
...
...
@@ -62,9 +62,33 @@ function createObserver (name) {
}
}
export
function
getProperties
(
props
)
{
const
properties
=
{
vueSlots
:
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
export
function
getBehaviors
(
vueExtends
,
vueMixins
)
{
const
behaviors
=
[]
if
(
isPlainObject
(
vueExtends
)
&&
vueExtends
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueExtends
.
props
,
true
)
})
)
}
if
(
Array
.
isArray
(
vueMixins
))
{
vueMixins
.
forEach
(
vueMixin
=>
{
if
(
isPlainObject
(
vueMixin
)
&&
vueMixin
.
props
)
{
behaviors
.
push
(
Behavior
({
properties
:
getProperties
(
vueMixin
.
props
,
true
)
})
)
}
})
}
return
behaviors
}
export
function
getProperties
(
props
,
isBehavior
=
false
)
{
const
properties
=
{}
if
(
!
isBehavior
)
{
properties
.
vueSlots
=
{
// 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots
type
:
null
,
value
:
[],
observer
:
function
(
newVal
,
oldVal
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录