Skip to content

Commit 212a3bb

Browse files
committed
Merge branch 'update-vue-vapor' of https://github.com/sxzz/js-framework-benchmark into sxzz-update-vue-vapor
2 parents 1b7d66c + 8a602a3 commit 212a3bb

File tree

8 files changed

+512
-1646
lines changed

8 files changed

+512
-1646
lines changed

frameworks/keyed/vue-vapor/package-lock.json

Lines changed: 242 additions & 509 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frameworks/keyed/vue-vapor/package.json

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313
"preview": "vite preview"
1414
},
1515
"dependencies": {
16-
"vue": "npm:@vue-vapor/vue@latest"
16+
"vue": "https://pkg.pr.new/vuejs/core-vapor/vue@e07eac9"
1717
},
1818
"devDependencies": {
19-
"@vitejs/plugin-vue": "npm:@vue-vapor/vite-plugin-vue@latest",
20-
"vite": "^5.2.9",
21-
"vite-plugin-inspect": "^0.8.5"
19+
"@vitejs/plugin-vue": "https://pkg.pr.new/@vitejs/plugin-vue@d8e849f",
20+
"vite": "^5.4.6"
2221
}
2322
}

frameworks/keyed/vue-vapor/pnpm-lock.yaml

Lines changed: 0 additions & 918 deletions
This file was deleted.

frameworks/keyed/vue-vapor/src/App.vue

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script setup vapor>
2-
import { ref, shallowRef, triggerRef, watch } from "vue";
2+
import { ref, shallowRef, triggerRef } from "vue";
3+
import { createSelector } from "vue/vapor";
34
import { buildData } from "./data";
45
56
const selected = ref();
@@ -51,20 +52,11 @@ function swapRows() {
5152
const d998 = _rows[998];
5253
_rows[1] = d998;
5354
_rows[998] = d1;
54-
triggerRef(rows)
55+
triggerRef(rows);
5556
}
5657
}
5758
58-
// Reduce the complexity of `selected` from O(n) to O(1).
59-
function createSelector(source) {
60-
const cache = {}
61-
watch(source, (val, old) => {
62-
if (old != undefined) cache[old].value = false
63-
if (val != undefined) cache[val].value = true
64-
})
65-
return id => (cache[id] ??= shallowRef(false)).value
66-
}
67-
const isSelected = createSelector(selected)
59+
const isSelected = createSelector(selected);
6860
</script>
6961

7062
<template>
@@ -103,7 +95,13 @@ const isSelected = createSelector(selected)
10395
</div>
10496
<table class="table table-hover table-striped test-data">
10597
<tbody>
106-
<tr v-for="row of rows" :key="row.id" :class="{ danger: isSelected(row.id) }" :data-label="row.label">
98+
<tr
99+
v-for="row of rows"
100+
:key="row.id"
101+
:class="{ danger: isSelected(row.id) }"
102+
:data-label="row.label.value"
103+
v-memo="[row.label.value, row.id === selected]"
104+
>
107105
<td class="col-md-1">{{ row.id }}</td>
108106
<td class="col-md-4">
109107
<a @click="select(row.id)">{{ row.label.value }}</a>

frameworks/keyed/vue-vapor/vite.config.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { defineConfig } from "vite";
22
import vue from "@vitejs/plugin-vue";
3-
import Inspect from 'vite-plugin-inspect'
43

54
export default defineConfig({
6-
plugins: [vue(), Inspect()],
5+
plugins: [vue()],
76
build: {
87
rollupOptions: {
98
input: "src/main.js",

0 commit comments

Comments
 (0)