• Vue中的 配置项 setup


    setup 是 Vue3 中的一个全新的配置项,值为一个函数。

    setup 是所有 Composition API(组合式API)的入口,是 Vue3 语法的基础。

    组件中所用到的数据、方法、计算属性等,都需要配置在 setup 中。

    setup 会在 beforeCreate 之前执行一次,this 是 undefined 。

     Options API 与 Composition API 的概念

    在 Vue2 中,编写组件的方式就是 Options API (选项式API)。

    Options API 的特点就是,在对应的配置项中编写对应的代码。比如,在 data 中定义数据、在 methods 中定义方法、在 computed 中定义计算属性等等。

    但是,如果使用 Options API 的方式开发大型项目,当一个组件的代码成千上百行时,功能逻辑分布在各个配置项中,就会显得非常零散,不易阅读,后期难以维护。

    Composition API 的方式类似于原生 JS ,可以将每个功能的代码都汇聚在一起,这样会使代码的逻辑性、阅读性、维护性更强。而 Composition API 编写代码的位置就是 setup 配置项。

    :Vue2 和 Vue3 的写法尽量不要混用,如果有重名,setup 配置的内容优先。

     setup 的基础写法:

    1. <template>
    2. <h1>个人信息h1>
    3. <p>姓名:{{ name }}p>
    4. <p>年龄:{{ age }}p>
    5. template>
    6. <script>
    7. export default {
    8. name: "Home",
    9. setup() {
    10. // 定义数据:这里只是测试一下 setup ,暂不考虑响应式的问题。
    11. let name = "张三";
    12. let age = 18;
    13. // 返回数据:setup 返回的数据可以直接在 template 中使用。
    14. return {
    15. name,
    16. age
    17. }
    18. }
    19. }
    20. script>

    :setup 函数早于 beforeCreate 执行。也就是说 setup 函数在执行时,Vue 实例还没有创建出来,所以无法使用 this 。而 Vue 为了避免我们错误的使用,直接将 setup 函数中的 this 修改成了 undefined 。

     在 setup 中创建方法:

    1. <template>
    2. <button @click="arrowsFun">箭头函数格式button>
    3. <button @click="nameFun">命名函数格式button>
    4. <button @click="omitFun">匿名函数格式button>
    5. template>
    6. <script>
    7. export default {
    8. name: "Home",
    9. setup() {
    10. // 方式一:箭头函数格式
    11. const arrowsFun = () => {
    12. alert("箭头函数格式");
    13. }
    14. // 方式二:命名函数格式
    15. function nameFun() {
    16. alert("命名函数格式");
    17. }
    18. // 方式三:匿名函数格式
    19. const omitFun = function () {
    20. alert("函数简写格式");
    21. }
    22. // 返回数据
    23. return {
    24. arrowsFun,
    25. nameFun,
    26. omitFun
    27. }
    28. }
    29. }
    30. script>

    :setup 通常返回一个对象,对象中的数据、方法、属性等,都可以直接在 template 模板中使用。

     setup 返回渲染函数【不推荐】:

    1. <template>
    2. <p>我会被替换掉哦p>
    3. template>
    4. <script>
    5. import { h } from 'vue';
    6. export default {
    7. name: "Home",
    8. setup() {
    9. // 返回渲染函数
    10. return () => h("h1", "新内容");
    11. }
    12. }
    13. script>

     

    :setup 也可以返回一个渲染函数,用于替换组件中所有的内容。 

    原创作者:吴小糖

    创作时间:2023.11.8

  • 相关阅读:
    AVL的单旋和双旋—附图超详细
    Charles的Map Remote功能
    2023亚太杯数学建模A题思路分析
    Django中如何让DRF的接口针对前后台返回不同的字段
    docker-compose:搭建酷炫私有云相册photoprism
    基于JAVA的幼儿园管理系统的设计与实现-计算机毕业设计
    Vant UI的Sidebar侧边导航组件单独设置滚动条
    Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第6章 Vue.js路由 6.5 嵌套路由 && 6.6 路由布局
    R 和 Python用于统计学分析,哪个更好?
    Unity3D DOTS JobSystem物理引擎的使用详解
  • 原文地址:https://blog.csdn.net/xiaowude_boke/article/details/134301048