美文网首页
对props属性的回溯

对props属性的回溯

作者: 千茉紫依 | 来源:发表于2019-07-27 16:55 被阅读0次

在前端框架中,数据流是单向的,比如在子组件中props是只读的,想要在子组件对props进行修改,只能在子组件中调用父组件的函数,修改父组件中的数据,使父组件重新渲染才能间接修改props.这样做的目的是确保数据的可维护性,因为子组件可以在多处被复用,若子组件中都可以修改props,那么当项目变得复杂,我们将无法定位是子组件还是父组件造成了props的改变,这无疑会让项目变得难以维护.而单向的数据流使得数据的改变全部在父组件中进行,子组件只是被动的接受props参数,当props数据出现问题,只需要对父组件中相应的函数进行调试就可以了.

在react中,一般是父组件向子组件中传入一个props数据和一个在父组件中能够修改props的函数,如propsName={aaa} prospFun={this.funcName}这样我们在子组件中通过引用这个函数的方式实现了对父组件中props的修改.但当项目变得复杂,这种方法会使数据流变得复杂,因为每个组件都需要传递props和函数,效率较低.因此我们引入redux来精简项目,同时还可以与父组件的props解耦,使组件更加独立,另外由于redux本质上是一个全局变量,这个特点使得我们将项目重构成ssr时会节约大量的成本.

我以前写vue时对props回溯困惑了好一阵,在vue早期的版本中甚至可以在子组件中直接为props赋值,经过最近这些react组件的编写,我才彻底理解了vue中的props回溯功能首先最基本的写法和react差不多 , v-bind:propsName='aaa' v-on:prospFun='funcName', 然后在子组件中this.$emit ,其次vuex可以完成与redux相同的功能,具体写法百度吧.与react不同的是 由于vue中拥有computed和watch方法,我们可以在这些方法中模拟一个双向绑定的props,如

computed{
    canEditingProps(){
    return this.props.propsName || this.model
  }
}
data(){
    return {
    model:""
  }
}

这里,modal是在子组件中的双向绑定数据,通过与propsName的叠加计算,使得在子组件中模拟出了对props的回溯修改,但是这并不能影响父组件中的数值,还是要用this.$emit事件才能完成父组件数值的修改,watch也是同理.虽然解决了props的只读属性问题,但还是比较麻烦

所以在vue2.3中,官方引入了.sync属性,在v-bind:propsName='variableName.sync',这样在父组件中会自动生成一个关于variableName的双向绑定,本质上一个.sync等同于(父组件v-bind:propsName='aaa' v-on:prospFun='funcName',子组件中this.props this.$emit)这一组函数和数据的集合

相关文章

  • 对props属性的回溯

    在前端框架中,数据流是单向的,比如在子组件中props是只读的,想要在子组件对props进行修改,只能在子组件中调...

  • React(六)—— Props.children

    this.props对象的属性与组件的属性一一对应,但有一个例外,就是this.props.children属性。...

  • React 基础知识学习

    Props(属性)和 State(状态) 1.1 Props(属性) Props 属性用于把父组件的中的数据或者...

  • React属性(props)和状态(state)

    React属性(props)和状态(state) 一、属性(props) 属性props是由外部传入、描述性质的,...

  • react--props

    props属性: props对于模块来说属性外来属性 传递参数: 模块中接受参数:this.props.username

  • vue中父子组件通信

    通信方式: 一、props 当前组件接收到的 props 对象。Vue 实例代理了对其 props 对象属性的访问...

  • this.props.children

    this.props对象的属性与组件的属性一一对应,但是有个例外:this.props.children,他表示组...

  • ReactNative状态机思维与状态机变量

    Props属性 状态机思维 状态机变量 UI重新渲染的过程 React组件优化 Props属性 1、props属性...

  • react中props.children和React.Child

    一、this.props.children this.props对象的属性与组件的属性一一对应,但是有一个例外,就...

  • React中的this.props.children

    1、this.props对象的属性与组件的属性是一一对应的,但是有一个例外就是this.props.childre...

网友评论

      本文标题:对props属性的回溯

      本文链接:https://www.haomeiwen.com/subject/mvmerctx.html