返回列表 发帖

Vue 3.0 Data选项

#概览
非兼容:data 组件选项声明不再接收纯 JavaScript object,而需要 function 声明。
当合并来自 mixin 或 extend 的多个 data 返回值时,现在是浅层次合并的而不是深层次合并的(只合并根级属性)。

#2.x Syntax
在 2.x 中,开发者可以定义 data 选项是 object 或者是 function。

例如:

<!-- Object 声明 -->
<script>
  const app = new Vue({
    data: {
      apiKey: 'a1b2c3'
    }
  })
</script>
<!-- Function 声明 -->
<script>
  const app = new Vue({
    data() {
      return {
        apiKey: 'a1b2c3'
      }
    }
  })
</script>
虽然这对于具有共享状态的根实例提供了一些便利,但是由于只有在根实例上才有可能,这导致了混乱。

#3.x Update
在 3.x,data 选项已标准化为只接受返回 object 的 function。

使用上面的示例,代码只有一个可能的实现:

<script>
  import { createApp } from 'vue'
  createApp({
    data() {
      return {
        apiKey: 'a1b2c3'
      }
    }
  }).mount('#app')
</script>
#Mixin 合并行为变更

返回列表