Vue3 组合式 API的简单应用

使用Vue3 最大的变化就是组合式API,通过ref,reactive,computed,等函数,可以将vue依赖的数据与逻辑出来。简单来讲,就是vue3可以直接写原来需要vuex封装的数据层。

举个例子:index页面的3个区域封装成3个组件:Top,List,Summary。三个组件都需要访问list数据。
以前需要引入vuex,通过manState的方式响应数据变化。

image.png

Vue3直接可以提取一个data文件。

import { ref, computed } from "vue";

let list = ref([]);

let listCount = computed(() => list.value.length);

const addItem = function(item) {
  list.value.push(item);
};

export { list, listCount, addItem };
l10.gif
List.vue
<template>
  <div>
    <ul>
      <li v-for="(item, index) in list" :key="index">{{ item }}</li>
    </ul>
  </div>
</template>

<script>
import { list } from "../data.js";

export default {
  name: "list",
  setup() {
    return { list };
  },
};
</script>
Top.vue
<template>
  <div>
    <button @click="addItem">Add Item</button>
  </div>
</template>

<script>
import { addItem } from "../data.js";

export default {
  name: "top",
  setup() {
    return {
      addItem,
    };
  },
};
</script>
Summary.vue
<template>
  <div>
      ListCount:  {{ listCount }}
  </div>
</template>

<script>
import { listCount } from "../data.js";

export default {
  name: "summary",
  setup() {
    return { listCount };
  },
};
</script>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容