Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
5d1c7dc4
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5d1c7dc4
编写于
5月 12, 2020
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(v3): decode query (onLoad)
上级
2c8d9d3a
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
21 addition
and
16 deletion
+21
-16
src/core/service/plugins/page/index.js
src/core/service/plugins/page/index.js
+5
-14
src/platforms/app-plus/service/framework/plugins/lifecycle.js
...platforms/app-plus/service/framework/plugins/lifecycle.js
+4
-2
src/shared/query.js
src/shared/query.js
+12
-0
未找到文件。
src/core/service/plugins/page/index.js
浏览文件 @
5d1c7dc4
import
{
decodedQuery
}
from
'
uni-shared
'
import
{
callPageHook
}
from
'
../util
'
import
createPage
from
'
./create-page
'
// 与小程序保持一致,尝试decodeURIComponent一次参数
function
getDecodedQuery
(
query
=
{})
{
const
decodedQuery
=
{}
Object
.
keys
(
query
).
forEach
(
name
=>
{
try
{
decodedQuery
[
name
]
=
decodeURIComponent
(
query
[
name
])
}
catch
(
e
)
{
decodedQuery
[
name
]
=
query
[
name
]
}
})
return
decodedQuery
}
export
function
createPageMixin
()
{
return
{
created
:
function
pageCreated
()
{
const
options
=
getD
ecodedQuery
(
this
.
$route
.
query
)
const
options
=
d
ecodedQuery
(
this
.
$route
.
query
)
createPage
(
this
,
options
)
callPageHook
(
this
,
'
onLoad
'
,
options
)
callPageHook
(
this
,
'
onShow
'
)
...
...
src/platforms/app-plus/service/framework/plugins/lifecycle.js
浏览文件 @
5d1c7dc4
import
{
hasOwn
hasOwn
,
decodedQuery
}
from
'
uni-shared
'
import
{
...
...
@@ -86,7 +87,8 @@ export function initLifecycle (Vue) {
},
created
()
{
if
(
this
.
mpType
===
'
page
'
)
{
callPageHook
(
this
.
$scope
,
'
onLoad
'
,
this
.
$options
.
pageQuery
)
// 理论上应该从最开始的 parseQuery 的地方直接 decode 两次,为了减少影响范围,先仅处理 onLoad 参数
callPageHook
(
this
.
$scope
,
'
onLoad
'
,
decodedQuery
(
this
.
$options
.
pageQuery
))
callPageHook
(
this
.
$scope
,
'
onShow
'
)
}
},
...
...
src/shared/query.js
浏览文件 @
5d1c7dc4
...
...
@@ -69,4 +69,16 @@ export function stringifyQuery (obj, encodeStr = encode) {
return
encodeStr
(
key
)
+
'
=
'
+
encodeStr
(
val
)
}).
filter
(
x
=>
x
.
length
>
0
).
join
(
'
&
'
)
:
null
return
res
?
`?
${
res
}
`
:
''
}
export
function
decodedQuery
(
query
=
{})
{
const
decodedQuery
=
{}
Object
.
keys
(
query
).
forEach
(
name
=>
{
try
{
decodedQuery
[
name
]
=
decode
(
query
[
name
])
}
catch
(
e
)
{
decodedQuery
[
name
]
=
query
[
name
]
}
})
return
decodedQuery
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录