Эх сурвалжийг харах

Merge branch 'dev/v1.0.34_tsz' of jianyu/web into feature/v1.0.34

汤世哲 1 жил өмнө
parent
commit
893e7f376f
1 өөрчлөгдсөн 17 нэмэгдсэн , 9 устгасан
  1. 17 9
      docs/vue3/vue3.md

+ 17 - 9
docs/vue3/vue3.md

@@ -200,8 +200,10 @@ Vue3 中对不参与更新的元素,会做静态提升,只会被创建一次
 这样就免去了重复的创建节点,大型应用会受益于这个改动,免去了重复的创建操
 作,优化了运行时候的内存占用
 ```
-<span>你好</span>
-<div>{{ message }}</div>
+<template>
+  <span>你好</span>
+  <div>{{ message }}</div>
+</template>
 <script>
 // 没有做静态提升之前
 export function render(_ctx, _cache, $props, $setup, $data, $options) {
@@ -223,9 +225,8 @@ export function render(_ctx, _cache, $props, $setup, $data, $options) {
   ], 64 /* STABLE_FRAGMENT */))
 }
 </script>
-```
 
-### 事件监听缓存
+### 3.事件监听缓存
 ```
 未开启事件监听器缓存:
 ```
@@ -256,7 +257,7 @@ export function render(_ctx, _cache, $props, $setup, $data, $options) {
 总结来说,开启事件监听器缓存是为了优化性能,减少无谓的DOM更新以及内存消耗。
 
 ```
-### SSR 优化
+### 4.SSR 优化
 ```
 当静态内容大到一定量级时候,会用 createStaticVNode 方法在客户端去生成一
 个 static node,这些静态 node,会被直接 innerHtml,就不需要创建对象,然后根
@@ -332,6 +333,7 @@ shanking
 ```
 
 ### 响应式系统
+```
 <script>
   // Object.defineProperty 只能遍历对象属性进行劫持
 function observe(obj) {
@@ -388,7 +390,7 @@ const arrayProto = Object.create(originalProto)['push', 'pop', 'shift', 'unshift
 Vue.set(obj,'bar','newbar')
 Vue.delete(obj,'bar')
 </script>
-
+```
 ## 状态管理 pinia
 
 > 由于 vuex 4 对 typescript 的支持度较低,所以状态管理弃用了 vuex 而采取了 pinia. pinia 的作者是 Vue 核心团队成员
@@ -538,7 +540,7 @@ export const useMainStore = defineStore({
 ## composition API 与 options API
 ```
 在 Vue2 中,我们用过 mixin 去复用相同的逻辑
-```
+
 <script>
 export const MoveMixin = {
  data() {
@@ -575,7 +577,9 @@ export const MoveMixin = {
   },
 };
 </script>
+```
 然后在组件中使用
+```
 <template>
  <div>
  Mouse position: x {{ x }} / y {{ y }}
@@ -587,6 +591,7 @@ export default {
  mixins: [mousePositionMixin]
 }
 </script>
+```
 使用单个 mixin 似乎问题不大,但是当我们一个组件混入大量不同的 mixins 的时
 mixins: [mousePositionMixin, fooMixin, barMixin, otherMixin]
@@ -594,6 +599,7 @@ mixins: [mousePositionMixin, fooMixin, barMixin, otherMixin]
 • 命名冲突
 • 数据来源不清晰
 现在通过 Compositon API 这种方式改写上面的代码
+```
 <script>
   import { onMounted, onUnmounted, reactive } from "vue";
 export function useMove() {
@@ -628,7 +634,8 @@ export function useMove() {
   return { position };
 }
 </script>
-
+```
+```
 <template>
  <div>
  Mouse position: x {{ x }} / y {{ y }}
@@ -650,4 +657,5 @@ export default {
     };
   },
 };
-</script>
+</script>
+```