提交 386d97ce 编写于 作者: DCloud-WZF's avatar DCloud-WZF 💬

fix(reactive): 规避 template reverse 无效问题

上级 f9fedb54
...@@ -31,26 +31,26 @@ ...@@ -31,26 +31,26 @@
<view class="flex justify-between flex-row mb-10"> <view class="flex justify-between flex-row mb-10">
<text>arr2ForEachEffectCount:</text> <text>arr2ForEachEffectCount:</text>
<text id="arr2">{{ arr2ForEachEffectCount }}</text> <text id="arr2">{{ arr2ForEachEffectCount }}</text>
</view> </view>
<view class="flex justify-between flex-row mb-10"> <view class="flex justify-between flex-row mb-10">
<text>arr3(reverse):</text> <text>arr3(reverse):</text>
<text id="arr3">{{ JSON.stringify(arr3.reverse()) }}</text> <text id="arr3">{{ JSON.stringify(arr3) }}</text>
</view> </view>
<view class="flex justify-between flex-row mb-10"> <view class="flex justify-between flex-row mb-10">
<text>map2ForEachEffectCount:</text> <text>map2ForEachEffectCount:</text>
<text id="map2">{{ map2ForEachEffectCount }}</text> <text id="map2">{{ map2ForEachEffectCount }}</text>
</view> </view>
<view class="flex justify-between flex-row mb-10"> <view class="flex justify-between flex-row mb-10">
<text>map3ForOfEffectCount:</text> <text>map3ForOfEffectCount:</text>
<text id="map3">{{ map3ForOfEffectCount }}</text> <text id="map3">{{ map3ForOfEffectCount }}</text>
</view> </view>
<view class="flex justify-between flex-row mb-10"> <view class="flex justify-between flex-row mb-10">
<text>set2ForEachEffectCount:</text> <text>set2ForEachEffectCount:</text>
<text id="set2">{{ set2ForEachEffectCount }}</text> <text id="set2">{{ set2ForEachEffectCount }}</text>
</view> </view>
<view class="flex justify-between flex-row mb-10"> <view class="flex justify-between flex-row mb-10">
<text>set3ForOfEffectCount:</text> <text>set3ForOfEffectCount:</text>
<text id="set3">{{ set3ForOfEffectCount }}</text> <text id="set3">{{ set3ForOfEffectCount }}</text>
</view> </view>
<button class='mb-10' id="update-count-btn" @click="updateCount">update count</button> <button class='mb-10' id="update-count-btn" @click="updateCount">update count</button>
<button class='mb-10' id="update-obj-str-btn" @click="updateObjStr">update obj.str</button> <button class='mb-10' id="update-obj-str-btn" @click="updateObjStr">update obj.str</button>
...@@ -60,9 +60,9 @@ ...@@ -60,9 +60,9 @@
<button class='mb-10' id="update-arr1-btn" @click="updateArr1(false)">update arr1 without reactive</button> <button class='mb-10' id="update-arr1-btn" @click="updateArr1(false)">update arr1 without reactive</button>
<button class='mb-10' id="update-arr1-reactive-btn" @click="updateArr1(true)">update arr1 with reactive</button> <button class='mb-10' id="update-arr1-reactive-btn" @click="updateArr1(true)">update arr1 with reactive</button>
<button class='mb-10' id="update-arr2-forEach-effect-btn" @click="updateArr2()">update arr2</button> <button class='mb-10' id="update-arr2-forEach-effect-btn" @click="updateArr2()">update arr2</button>
<button class='mb-10' id="update-map2-forEach-effect-btn" @click="updateMap2()">update map2 for each</button> <button class='mb-10' id="update-map2-forEach-effect-btn" @click="updateMap2()">update map2 for each</button>
<button class='mb-10' id="update-map3-forOf-effect-btn" @click="updateMap3()">update map3 for of</button> <button class='mb-10' id="update-map3-forOf-effect-btn" @click="updateMap3()">update map3 for of</button>
<button class='mb-10' id="update-set2-forEach-effect-btn" @click="updateSet2()">update set2 for each</button> <button class='mb-10' id="update-set2-forEach-effect-btn" @click="updateSet2()">update set2 for each</button>
<button class='mb-10' id="update-set3-forOf-effect-btn" @click="updateSet3()">update set3 for of</button> <button class='mb-10' id="update-set3-forOf-effect-btn" @click="updateSet3()">update set3 for of</button>
</scroll-view> </scroll-view>
</template> </template>
...@@ -128,9 +128,9 @@ ...@@ -128,9 +128,9 @@
}) })
function updateArr2() { function updateArr2() {
arr2.push(Date.now()) arr2.push(Date.now())
} }
var arr3 = reactive([1, 2, 3, 4, 5]) var arr3 = reactive([1, 2, 3, 4, 5]).reverse()
const map2 = reactive(new Map<string, number>([["a", 1]])) const map2 = reactive(new Map<string, number>([["a", 1]]))
const map2ForEachEffectCount = ref(0) const map2ForEachEffectCount = ref(0)
...@@ -142,41 +142,41 @@ ...@@ -142,41 +142,41 @@
}) })
function updateMap2() { function updateMap2() {
map2.set("c-" + Date.now(), Date.now()) map2.set("c-" + Date.now(), Date.now())
} }
const map3 = reactive(new Map<string, number>([["a", 1]])) const map3 = reactive(new Map<string, number>([["a", 1]]))
const map3ForOfEffectCount = ref(0) const map3ForOfEffectCount = ref(0)
watchEffect(() => { watchEffect(() => {
map3ForOfEffectCount.value++ map3ForOfEffectCount.value++
for(const item of map3){ for(const item of map3){
console.log("map3",item) console.log("map3",item)
} }
}) })
function updateMap3() { function updateMap3() {
map3.set("c-" + Date.now(), Date.now()) map3.set("c-" + Date.now(), Date.now())
} }
const set2 = reactive(new Set<number>([1])) const set2 = reactive(new Set<number>([1]))
const set2ForEachEffectCount = ref(0) const set2ForEachEffectCount = ref(0)
watchEffect(() => { watchEffect(() => {
set2ForEachEffectCount.value++ set2ForEachEffectCount.value++
set2.forEach((item : number) => { set2.forEach((item : number) => {
console.log('set2', item) console.log('set2', item)
}) })
}) })
function updateSet2() { function updateSet2() {
set2.add(Date.now()) set2.add(Date.now())
} }
const set3 = reactive(new Set<number>([1])) const set3 = reactive(new Set<number>([1]))
const set3ForOfEffectCount = ref(0) const set3ForOfEffectCount = ref(0)
watchEffect(() => { watchEffect(() => {
set3ForOfEffectCount.value++ set3ForOfEffectCount.value++
for(const item of set3){ for(const item of set3){
console.log("set3",item) console.log("set3",item)
} }
}) })
function updateSet3() { function updateSet3() {
set3.add(Date.now()) set3.add(Date.now())
} }
</script> </script>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册