zoukankan      html  css  js  c++  java
  • 怎样理解 Vue 组件中 data 必须为函数 ?

    组件意在 复用 , 若为 对象, 则会相互干扰. 且 Vue 不允许此事发生, 规定必须为函数, 否则报错. 原理如下

    对象

    // 模拟创建组件
    var Component= function() {}
    
    // 模拟使用对象作data
    Component.prototype.data = { a: 1 }
    
    // 模拟使用组件
    var component1 = new Component()
    var component2 = new Component()
    
    // 发现 data 共用, 相互影响
    component1.data.a = 2
    component2.data.a   // 2

    函数

    // 模拟创建组件
    var Component= function() {};
    
    // 模拟使用函数作data
    Component.prototype.data = function() { return { a: 1 } };
    
    // 模拟使用组件
    var component1 = new Component()
    var component2 = new Component()
    
    // 两者互不影响
    component1.data.a = 2
    component2.data.a // 1
  • 相关阅读:
    IDE-常用插件
    Go-竞态条件-锁
    Go-发送邮件
    复刻网络Yum源配置为本地Yum源使用
    测试
    九.查找算法
    九.多线程-PDF笔记
    八.设计模式
    八.排序算法:复杂度
    七.注解
  • 原文地址:https://www.cnblogs.com/aisowe/p/11437212.html
Copyright © 2011-2022 走看看