`mobx-state-tree`中模型和道具有什么区别?

问题描述 投票:0回答:1

在我看来,人们在使用 modelprops 可以互换。我试着找有关道具的文件,但失败了。谁能告诉我其中的区别?

mobx mobx-state-tree
1个回答
1
投票

model 方法创建一个新模型。它需要两个参数。

  • 名称
  • 属性

您可以创建一个新的模型并指定属性。或者您也可以先创建模型,然后用 "扩展 "它。props 方法(props是属性的简称)。TodoOne和TodoTwo是一样的。

const TodoOne = types.model("Todo", {title: types.string, done: types.boolean})

const TodoTwo = types.model("Todo")
  .props({
    title: types.string, 
    done: types.boolean
  }) 

但这有什么用呢?那么 props 方法并不突变当前的类型,而是创建一个新的类型并扩展它。这意味着我们可以添加或覆盖现有的道具。

const Todo = types.model("Todo", {title: types.string, done: types.boolean})

const ColorfulTodo = Todo.props({color: types.string}) // returns a new model with a new property

const DefaultTodo = Todo.props({done: false}) // returns a new model with done property overwritten to default to false

在这个方法中,我们可以添加或覆盖现有的道具。viewsactions 方法可以以同样的方式扩展模型,如 props 方法。


0
投票

模型需要属性。

const Todo = types
    .model("Todo", {
        title: types.string,
        done: false
    })

在上面的例子中,我们创建了一个 Todo 模型(MST模型),具有两种性质。

title 这是一个 String

done 巫婆 Boolean 并默认为 false

所以当你听到 props 他们指的是模型的属性。

© www.soinside.com 2019 - 2024. All rights reserved.