Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
anyefeiyu
uni-app
提交
aa4d0951
U
uni-app
项目概览
anyefeiyu
/
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,发现更多精彩内容 >>
提交
aa4d0951
编写于
8月 03, 2021
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(mp): scopedSlotsCompiler-auto ignore event (question/127859,127297)
上级
9a603b05
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
2 deletion
+20
-2
packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
...ni-template-compiler/__tests__/compiler-mp-weixin.spec.js
+8
-0
packages/uni-template-compiler/lib/script/traverse/resolve-scoped-slots.js
...late-compiler/lib/script/traverse/resolve-scoped-slots.js
+12
-2
未找到文件。
packages/uni-template-compiler/__tests__/compiler-mp-weixin.spec.js
浏览文件 @
aa4d0951
...
@@ -97,6 +97,14 @@ describe('mp:compiler-mp-weixin', () => {
...
@@ -97,6 +97,14 @@ describe('mp:compiler-mp-weixin', () => {
scopedSlotsCompiler
:
'
auto
'
scopedSlotsCompiler
:
'
auto
'
}
}
)
)
assertCodegen
(
'
<my-component><template v-slot="{item}"><view @click="getValue(item)">{{item}}</view><template></my-component>
'
,
'
<my-component generic:scoped-slots-default="test-my-component-default" data-vue-generic="scoped" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}"></my-component>
'
,
'
with(this){}
'
,
{
scopedSlotsCompiler
:
'
auto
'
}
)
assertCodegen
(
assertCodegen
(
'
<my-component><template v-slot="{item}">{{getValue(item)}}<template></my-component>
'
,
'
<my-component><template v-slot="{item}">{{getValue(item)}}<template></my-component>
'
,
'
<my-component scoped-slots-compiler="augmented" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}"><block><block wx:if="{{$root.m0}}">{{$root.m1}}</block></block></my-component>
'
,
'
<my-component scoped-slots-compiler="augmented" vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}"><block><block wx:if="{{$root.m0}}">{{$root.m1}}</block></block></my-component>
'
,
...
...
packages/uni-template-compiler/lib/script/traverse/resolve-scoped-slots.js
浏览文件 @
aa4d0951
...
@@ -2,17 +2,27 @@ const t = require('@babel/types')
...
@@ -2,17 +2,27 @@ const t = require('@babel/types')
const
{
const
{
METHOD_BUILT_IN
,
METHOD_BUILT_IN
,
METHOD_CREATE_EMPTY_VNODE
METHOD_CREATE_EMPTY_VNODE
,
METHOD_CREATE_ELEMENT
}
=
require
(
'
../../constants
'
)
}
=
require
(
'
../../constants
'
)
function
needSlotMode
(
path
,
ids
)
{
function
needSlotMode
(
path
,
ids
)
{
let
need
let
need
path
.
traverse
({
path
.
traverse
({
noScope
:
false
,
noScope
:
false
,
Property
(
path
)
{
// 跳过事件
if
(
path
.
node
.
key
.
name
===
'
on
'
)
{
const
parentPath
=
path
.
parentPath
.
parentPath
if
(
t
.
isCallExpression
(
parentPath
)
&&
parentPath
.
node
.
callee
.
name
===
METHOD_CREATE_ELEMENT
)
{
path
.
skip
()
}
}
},
Identifier
(
path
)
{
Identifier
(
path
)
{
const
name
=
path
.
node
.
name
const
name
=
path
.
node
.
name
if
(
path
.
key
!==
'
key
'
&&
(
path
.
key
!==
'
property
'
||
path
.
parent
.
computed
))
{
if
(
path
.
key
!==
'
key
'
&&
(
path
.
key
!==
'
property
'
||
path
.
parent
.
computed
))
{
// 使用方法或作用域外数据
// 使用
作用域内
方法或作用域外数据
if
(
name
in
ids
)
{
if
(
name
in
ids
)
{
need
=
path
.
key
===
'
callee
'
?
true
:
need
need
=
path
.
key
===
'
callee
'
?
true
:
need
}
else
if
(
!
path
.
scope
.
hasBinding
(
name
)
&&
!
METHOD_BUILT_IN
.
includes
(
name
))
{
}
else
if
(
!
path
.
scope
.
hasBinding
(
name
)
&&
!
METHOD_BUILT_IN
.
includes
(
name
))
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录