2023-02-18-vue-developer.elonehoo.me
Open in
urlscan Pro
76.76.21.93
Public Scan
Submitted URL: http://2023-02-18-vue-developer.elonehoo.me/
Effective URL: https://2023-02-18-vue-developer.elonehoo.me/
Submission Tags: phish.gg anti.fish automated Search All
Submission: On November 14 via api from DE — Scanned from DE
Effective URL: https://2023-02-18-vue-developer.elonehoo.me/
Submission Tags: phish.gg anti.fish automated Search All
Submission: On November 14 via api from DE — Scanned from DE
Form analysis
0 forms found in the DOMText Content
VUE开发体验 WITH VUE Elone Hoo Work Talks Mar. 18th 2023 ELONE HOO JumpIDE, VueHooksForm, Pistachio, LogonTracer 等开源项目作者 任职于 Beneway WIP of Elone Hoo elonehoo elonehoo elonehoo.me 1 / 17 VUE开发体验 WITH VUE Elone Hoo Work Talks Mar. 18th 2023 1 ELONE HOO JumpIDE, VueHooksForm, Pistachio, LogonTracer 等开源项目作者 任职于 Beneway WIP of Elone Hoo elonehoo elonehoo elonehoo.me 2 开发者体验 3 响应能力 Vite 网页中的 HMR vite-node Node 中的 HRM Spring DevTool 用于后端 API 重新加载 4 常见做法 * TypeScript / ESM * SPA / SSR / Static / Hybrid * 布局、插件、路由中间件… * 组合实用程序 - useState、useAsyncData、useFetch… * Head/SEO - useHead, useSeoMeta… * 后端集成、serverless 等。 5 惯例 * 基于文件的路由 * 组件自动导入 * Composition API 自动导入 * 端到端类型 6 生态 * 模块 * 轻松整合 7 VUE中的 - 响应式 * 自动收集依赖 & 更新 * Vue 3 中新的 API * ref * reactive * effect * computed 8 响应式 - REACTIVE * 使用 Proxy 实现 * track,trigger 进行响应式追踪 const reactive = target => new Proxy(target, { get(target, prop, receiver) { track(target, prop) return Reflect.get(...arguments) // get original data }, set(target, key, value, receiver) { trigger(target, key) return Reflect.set(...arguments) } }) const obj = reactive({ hello: 'world' }) console.log(obj.hello) // `track()` get called obj.hello = 'vue' // `trigger()` get called const reactive = target => new Proxy(target, { get(target, prop, receiver) { track(target, prop) return Reflect.get(...arguments) // get original data }, set(target, key, value, receiver) { trigger(target, key) return Reflect.set(...arguments) } }) const obj = reactive({ hello: 'world' }) console.log(obj.hello) // `track()` get called obj.hello = 'vue' // `trigger()` get called 9 响应式 - EFFECT * track 追踪调用它的函数 * trigger 出发绑定的更新 * effect 调用函数并且触发收集依赖 const targetMap = new WeakMap() export const track = (target, key) => { if (tacking && activeEffect) targetMap.get(target).key(key).push(activeEffect) } export const trigger = (target, key) => { targetMap.get(target).key(key).forEach(effect => effect()) } export const effect = (fn) => { const effect = function () { fn() } enableTracking() activeEffect = effect fn() resetTracking() activeEffect = undefined } const targetMap = new WeakMap() export const track = (target, key) => { if (tacking && activeEffect) targetMap.get(target).key(key).push(activeEffect) } export const trigger = (target, key) => { targetMap.get(target).key(key).forEach(effect => effect()) } export const effect = (fn) => { const effect = function () { fn() } enableTracking() activeEffect = effect fn() resetTracking() activeEffect = undefined } 10 更进一步 11 介绍 12 * 多分支管理 * 多版本控制 * 最佳的 diff 展示 13 DEMO 时间! 14 查看 Demo 15 这就是我们在这个项目中是如何使用 GIT 的 16 THANK YOU! Slides on elonehoo.me 17