Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qianlong66
uni-app
提交
27387af1
U
uni-app
项目概览
qianlong66
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
27387af1
编写于
7月 29, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(app): attribute support json types
上级
a53b4733
变更
9
展开全部
隐藏空白更改
内联
并排
Showing
9 changed file
with
667 addition
and
148 deletion
+667
-148
packages/uni-app-plus/dist/uni-app-service.es.js
packages/uni-app-plus/dist/uni-app-service.es.js
+2
-2
packages/uni-app-plus/dist/uni-app-view.umd.js
packages/uni-app-plus/dist/uni-app-view.umd.js
+545
-122
packages/uni-app-plus/src/view/framework/dom/components/UniComponent.ts
...pp-plus/src/view/framework/dom/components/UniComponent.ts
+6
-1
packages/uni-app-vue/dist/service.runtime.esm.js
packages/uni-app-vue/dist/service.runtime.esm.js
+30
-2
packages/uni-app-vue/lib/service.runtime.esm.js
packages/uni-app-vue/lib/service.runtime.esm.js
+33
-2
packages/uni-h5/dist/uni-h5.cjs.js
packages/uni-h5/dist/uni-h5.cjs.js
+11
-10
packages/uni-h5/dist/uni-h5.es.js
packages/uni-h5/dist/uni-h5.es.js
+13
-9
packages/uni-vue/src/index.ts
packages/uni-vue/src/index.ts
+2
-0
packages/uni-vue/src/reactivity.ts
packages/uni-vue/src/reactivity.ts
+25
-0
未找到文件。
packages/uni-app-plus/dist/uni-app-service.es.js
浏览文件 @
27387af1
...
...
@@ -6000,11 +6000,11 @@ var serviceContext = (function (vue) {
this.webview = webview;
}
sendMessage(data) {
const message = {
const message =
JSON.parse(JSON.stringify(
{
__message: {
data,
},
};
}
))
;
const id = this.webview.id;
if (BroadcastChannel_) {
const channel = new BroadcastChannel_(id);
...
...
packages/uni-app-plus/dist/uni-app-view.umd.js
浏览文件 @
27387af1
此差异已折叠。
点击以展开。
packages/uni-app-plus/src/view/framework/dom/components/UniComponent.ts
浏览文件 @
27387af1
import
{
hasOwn
}
from
'
@vue/shared
'
import
{
hasOwn
,
isString
}
from
'
@vue/shared
'
import
{
App
,
Component
,
...
...
@@ -15,6 +15,8 @@ import { createWrapper, UniCustomElement } from '.'
import
{
$
,
removeElement
}
from
'
../page
'
import
{
queuePostActionJob
}
from
'
../scheduler
'
const
JSON_PREFIX
=
'
$JSON$:
'
const
JSON_PREFIX_LEN
=
JSON_PREFIX
.
length
export
class
UniComponent
extends
UniNode
{
declare
$
:
UniCustomElement
protected
$props
!
:
Record
<
string
,
any
>
...
...
@@ -80,6 +82,9 @@ export class UniComponent extends UniNode {
this
.
$props
[
name
]
=
null
}
setAttr
(
name
:
string
,
value
:
unknown
)
{
if
(
isString
(
value
)
&&
value
.
indexOf
(
JSON_PREFIX
)
===
0
)
{
value
=
JSON
.
parse
(
value
.
substr
(
JSON_PREFIX_LEN
))
}
this
.
$props
[
name
]
=
value
}
removeAttr
(
name
:
string
)
{
...
...
packages/uni-app-vue/dist/service.runtime.esm.js
浏览文件 @
27387af1
...
...
@@ -11114,11 +11114,29 @@ export default function vueFactory(exports) {
invoker
.
modifiers
=
[...
modifiers
];
return
invoker
;
}
// fixed by xxxxxx 不强制更新value,否则即使不变,也会从 service 同步到 view 中
}
var
forcePatchProps
=
{
AD
:
[
'
data
'
],
'
AD-DRAW
'
:
[
'
data
'
],
'
LIVE-PLAYER
'
:
[
'
picture-in-picture-mode
'
],
MAP
:
[
'
markers
'
,
'
polyline
'
,
'
circles
'
,
'
controls
'
,
'
include-points
'
,
'
polygons
'
],
PICKER
:
[
'
range
'
,
'
value
'
],
'
PICKER-VIEW
'
:
[
'
value
'
],
'
RICH-TEXT
'
:
[
'
nodes
'
],
VIDEO
:
[
'
danmu-list
'
,
'
header
'
],
'
WEB-VIEW
'
:
[
'
webview-styles
'
]
};
var
forcePatchProp
=
(
_
,
key
)
=>
false
;
// key === 'value'
var
forcePatchProp
=
(
_
,
key
)
=>
{
var
keys
=
forcePatchProps
[
_
.
nodeName
];
if
(
keys
&&
keys
.
indexOf
(
key
)
>
-
1
)
{
return
true
;
}
return
false
;
};
var
patchProp
=
(
el
,
key
,
prevValue
,
nextValue
,
parentComponent
)
=>
{
switch
(
key
)
{
...
...
@@ -11138,6 +11156,16 @@ export default function vueFactory(exports) {
patchEvent
(
el
,
key
,
prevValue
,
nextValue
);
}
}
else
{
if
(
isProxy
(
nextValue
))
{
var
equal
=
prevValue
===
nextValue
;
// 触发收集最新依赖
nextValue
=
'
$JSON$:
'
+
JSON
.
stringify
(
nextValue
);
if
(
equal
&&
el
.
getAttribute
(
key
)
===
nextValue
)
{
return
;
}
}
patchAttr
(
el
,
key
,
nextValue
);
}
...
...
packages/uni-app-vue/lib/service.runtime.esm.js
浏览文件 @
27387af1
...
...
@@ -9116,8 +9116,31 @@ function createInvoker(initialValue, instance) {
return
invoker
;
}
// fixed by xxxxxx 不强制更新value,否则即使不变,也会从 service 同步到 view 中
const
forcePatchProp
=
(
_
,
key
)
=>
false
;
// key === 'value'
const
forcePatchProps
=
{
AD
:
[
'
data
'
],
'
AD-DRAW
'
:
[
'
data
'
],
'
LIVE-PLAYER
'
:
[
'
picture-in-picture-mode
'
],
MAP
:
[
'
markers
'
,
'
polyline
'
,
'
circles
'
,
'
controls
'
,
'
include-points
'
,
'
polygons
'
],
PICKER
:
[
'
range
'
,
'
value
'
],
'
PICKER-VIEW
'
:
[
'
value
'
],
'
RICH-TEXT
'
:
[
'
nodes
'
],
VIDEO
:
[
'
danmu-list
'
,
'
header
'
],
'
WEB-VIEW
'
:
[
'
webview-styles
'
]
};
const
forcePatchProp
=
(
_
,
key
)
=>
{
const
keys
=
forcePatchProps
[
_
.
nodeName
];
if
(
keys
&&
keys
.
indexOf
(
key
)
>
-
1
)
{
return
true
;
}
return
false
;
};
const
patchProp
=
(
el
,
key
,
prevValue
,
nextValue
,
parentComponent
)
=>
{
switch
(
key
)
{
// special
...
...
@@ -9135,6 +9158,14 @@ const patchProp = (el, key, prevValue, nextValue, parentComponent) => {
}
}
else
{
if
(
isProxy
(
nextValue
))
{
const
equal
=
prevValue
===
nextValue
;
// 触发收集最新依赖
nextValue
=
'
$JSON$:
'
+
JSON
.
stringify
(
nextValue
);
if
(
equal
&&
el
.
getAttribute
(
key
)
===
nextValue
)
{
return
;
}
}
patchAttr
(
el
,
key
,
nextValue
);
}
break
;
...
...
packages/uni-h5/dist/uni-h5.cjs.js
浏览文件 @
27387af1
...
...
@@ -4843,17 +4843,18 @@ function useProvideRadioGroup(props2, trigger) {
}
});
const
uniForm
=
vue
.
inject
(
uniFormKey
,
false
);
if
(
uniForm
)
{
uniForm
.
addField
({
submit
:
()
=>
{
let
data
=
[
""
,
null
];
if
(
props2
.
name
!==
""
)
{
data
[
0
]
=
props2
.
name
;
data
[
1
]
=
getFieldsValue
();
}
return
data
;
const
formField
=
{
submit
:
()
=>
{
let
data
=
[
""
,
null
];
if
(
props2
.
name
!==
""
)
{
data
[
0
]
=
props2
.
name
;
data
[
1
]
=
getFieldsValue
();
}
});
return
data
;
}
};
if
(
uniForm
)
{
uniForm
.
addField
(
formField
);
}
function
setFieldChecked
(
field
,
radioChecked
)
{
field
.
value
=
{
...
...
packages/uni-h5/dist/uni-h5.es.js
浏览文件 @
27387af1
...
...
@@ -11052,16 +11052,20 @@ function useProvideRadioGroup(props2, trigger) {
}
});
const uniForm = inject(uniFormKey, false);
if (uniForm) {
uniForm.addField({
submit: () => {
let data = ["", null];
if (props2.name !== "") {
data[0] = props2.name;
data[1] = getFieldsValue();
}
return data;
const formField = {
submit: () => {
let data = ["", null];
if (props2.name !== "") {
data[0] = props2.name;
data[1] = getFieldsValue();
}
return data;
}
};
if (uniForm) {
uniForm.addField(formField);
onBeforeUnmount(() => {
uniForm.removeField(formField);
});
}
function setFieldChecked(field, radioChecked) {
...
...
packages/uni-vue/src/index.ts
浏览文件 @
27387af1
...
...
@@ -19,3 +19,5 @@ export function initApp(app: App) {
globalProperties
.
$applyOptions
=
applyOptions
}
}
export
{
traverse
}
from
'
./reactivity
'
packages/uni-vue/src/reactivity.ts
0 → 100644
浏览文件 @
27387af1
import
{
isObject
,
isArray
,
isMap
,
isSet
,
isPlainObject
}
from
'
@vue/shared
'
import
{
isRef
}
from
'
vue
'
export
function
traverse
(
value
:
unknown
,
seen
:
Set
<
unknown
>
=
new
Set
())
{
if
(
!
isObject
(
value
)
||
seen
.
has
(
value
)
||
(
value
as
any
)[
'
__v_skip
'
])
{
return
value
}
seen
.
add
(
value
)
if
(
isRef
(
value
))
{
traverse
(
value
.
value
,
seen
)
}
else
if
(
isArray
(
value
))
{
for
(
let
i
=
0
;
i
<
value
.
length
;
i
++
)
{
traverse
(
value
[
i
],
seen
)
}
}
else
if
(
isSet
(
value
)
||
isMap
(
value
))
{
value
.
forEach
((
v
:
any
)
=>
{
traverse
(
v
,
seen
)
})
}
else
if
(
isPlainObject
(
value
))
{
for
(
const
key
in
value
)
{
traverse
((
value
as
any
)[
key
],
seen
)
}
}
return
value
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录