当前位置: 首页 > article >正文

《Vue3 三》Vue 中的 options 选项

data 选项:

data 选项:属性值必须是一个函数;返回值是一个对象,返回的对象会被 Vue 的响应式系统劫持,之后对该对象的任何访问或者修改都会在劫持中被处理。

在 Vue2.x 中,data 的属性值可以是一个函数,也可以是一个对象;但是在 Vue3.x 中,data 的属性值必须是一个函数,否则会在浏览器中直接报错。

<div id="app">
    <h1>当前数字:{{count}}</h1>
</div>

<script>
const app = Vue.createApp({
    // 必须是一个函数,返回一个对象
    data() {
        return {
            count: 0,
        }
    },
})
app.mount('#app')

methods 选项:

methods 选项:属性值是一个对象;在这个对象中可以定义方法,这些方法可以被绑定到模板中,在这些方法中可以使用 this 关键字直接访问到 data 中返回的对象的属性。

methods 中的函数不能使用箭头函数,因为箭头函数没有自己的作用域,会继承上级的作用域,this 将不会按照期望指向组件实例。

<div id="app">
    <h1>当前数字:{{count}}</h1>
    <button @click="handleAdd">+1</button>
    <button @click="handleDelete">-1</button>
    <button @click="handleError">出错了~</button>
</div>

<script>
const app = Vue.createApp({
    data() {
        return {
            count: 0,
        }
    },
    methods: {
        // 这么写是正确的
        handleAdd: function() {
            this.count++;
        },
        // 这么写是正确的
        handleDelete() {
            this.count--;
        },
        // 这么写是错误的。箭头函数没有自己的作用域,会继承上级的作用域,this 将不会按照期望指向组件实例。上一级是 methods,是一个对象,没有作用域;再上一级是 Vue.createApp 中的对象,也没有作用域;再上一级就是全局作用域 window 了。 
        handleError: () => {
           console.log(this)
        },
    }
})
app.mount('#app')
</script>

methods 函数中的 this:

Vue 源码中其实是对 methods 中的所有函数进行遍历,通过 bind 绑定 this,this 就是当前实例的代理对象。
在这里插入图片描述


http://www.kler.cn/a/450751.html

相关文章:

  • dns一般设置为多少
  • 安装openGauss数据库一主一备
  • 帧缓存的分配
  • C#(事件)2
  • EasyExcel停更,FastExcel接力
  • 关于卡尔曼滤波
  • 使用Qwn2-VL模型批量标注图像内容(图像理解)
  • php中 cli和cgi的区别
  • python 聚类实战
  • 美国加州房价数据分析01
  • 软件测试面试题和简历模板(面试前准备篇)
  • 力扣第115题:不同的子序列 — C语言解法
  • golang , chan学习
  • 62.基于SpringBoot + Vue实现的前后端分离-驾校预约学习系统(项目+论文)
  • Java面试题精选:MyBatis(一)
  • 使用RKNN进行YOLOv8人体姿态估计的实战教程:yolov8-pose.onnx转yolov8-pose.rknn+推理全流程
  • Excel生成DBC脚本源文件
  • 分布式 IO 模块:赋能造纸业,革新高速纸机主传动
  • 【MFC】如何修改多文档视图的标签
  • 深入解析Android Recovery系统
  • 代写软件标书哪里找:如何让标书撰写变得高效轻松
  • 自动驾驶---Parking端到端架构
  • 在 .NET Core 中使用 ActionBlock 实现高效率的多步骤数据处理
  • 阿里云ESC服务器一次性全部迁移到另一个ESC
  • 以“技”出圈,珈和科技农业典型案例 “盛放”2024湖北农博会
  • 问题小记-达梦数据库报错“字符串转换出错”处理