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

Vue - 你知道Vue组件中的data为什么是一个函数吗

难度级别:中高级及以上                               提问概率:80% 


在Vue项目中,App.vue下的每个子组件都会生成一个单独的Vue实例对象,但这些子对象都是通过通过vue.extend方法创建而来的,也就是说我们平时在项目中所定义的Vue组件,都有一个相同的父类对象。这样也就导致了,所有的子组件最终所指向的内存空间是相同的。

但我们的需求是,子组件间的data数据是互相独立的,不能互相干扰,虽然很多时候我们都希望通过组件间数据共享,达到一个组件内数据变更,其他组件的数据也响应式变更的效果,但这些却属于开发人员主动操作的范围。所以组件间一定不能出现不受开发人员控制,data数据自动互相影响的情况。

通过读源码文件src/core/util/options.js和src/core/instance/init.js可知,Vue项目入口文件的new Vue的data属性可以是一个对象,因为这个最外层Vue实例对象只被new一次,不会再被复用。而我们自定义的这些Vue业务组件,都会通过vue.extend创建子类实例对象,然后把我们在业务组件中定义的data数据依赖通过mergeOptions方

http://www.lryc.cn/news/333961.html

相关文章:

  • MUX VLAN
  • 漫谈:“标准”是一种幻觉 C++语言标准的意义
  • 【Wbpack原理】基础流程解析,实现 mini-webpack
  • Debian 安装 python 3.9.6
  • 搜索二维矩阵2 合并两个有序链表
  • 深入Tauri开发——从环境搭建到项目构建
  • Redis 和 Mysql 数据库数据如何保持一致性
  • 探索7个MAMP本地开发环境的高效替代软件
  • 靡语IT:Bootstrap 简介
  • 亚马逊店铺引流:海外云手机的利用方法
  • 10 Python进阶:MongoDB
  • Leetcode 142. 环形链表 II和Leetcode 242. 有效的字母异位词
  • 【嵌入式DIY实例】-MODBUS串行通信
  • 入门用Hive构建数据仓库
  • 【计算机网络】会话层
  • springboot实现七牛云的文件上传下载
  • 【RISC-V 指令集】RISC-V 向量V扩展指令集介绍(六)- 向量内存一致性模型
  • Lvgl9 WindowsSimulator Visual Studio2017
  • 【STL】链表(list)
  • node.js常用指令
  • Flutter第六弹 基础列表ListView
  • 【考研经验贴】24考研860软件工程佛系上岸经验分享【丰富简历、初复试攻略、导师志愿、资料汇总】
  • 15-1-Flex布局
  • 深入浅出 -- 系统架构之负载均衡Nginx的性能优化
  • AI大模型下的策略模式与模板方法模式对比解析
  • 前端| 富文本显示不全的解决方法
  • 数据结构——链表
  • uniapp使用vuex
  • C++从入门到精通——this指针
  • Hive3.0.0建库表命令测试