vue setup props,vue3 setup 参数

  vue setup props,vue3 setup 参数

  

1.setUp函数的第1个参数props

  第一个参数props:

  Props是一个包含由父组件传递给子组件的所有数据的对象。

  使用道具接收子组件。

  一个对象,包含配置声明和传入的所有属性。

  也就是说,如果你想通过props的方式将父组件传递的值输出给子组件。

  接收配置需要使用道具。也就是道具:{.}

  如果不接受通过Props配置,输出值是未定义的【相关推荐:vue.js视频教程】

  模板

  差异

  父组件

  /div

  no-cont :mytitle=msg

  Othertitle=其他人的头衔

  @sonclick=sonclick

  /否-续

  /模板

  脚本

  从导入NoCont./components/NoCont.vue

  导出默认值{

  setup () {

  让消息={

  标题:“从父组件到子组件到子组件的数据”

  }

  函数sonclick(msss:string){

  控制台.日志(msss)

  }

  返回{msg,sonclick}

  },

  组件:{

  诺孔

  }

  }

  /脚本模板

  div @click=sonHander

  是我的子组件中的数据。

  /div

  /模板

  脚本

  从“vue”导入{ defineComponent,setup };

  导出默认定义组件({

  姓名: NoCont ,

  //不被接受

  //道具:{

  //mytitle:{

  //类型:对象

  //}

  //},

  设置(道具、上下文){

  console.log(props==,props . my title);//输出值未定义

  函数sonHander(){

  Context.emit(sonclick ,子组件被传递到父组件)

  }

  return {sonHander}

  }

  });

  /脚本

  为什么通过props.mytitle输出的值是未定义的?

  因为我们没有用道具来接收配置。也就是

  道具:{

  我的头衔:{

  类型:对象

  }

  },如果我们添加上接受配置

  

2.参数context的讲解

  第二个参数:context是一个对象。

  有attrs(获取当前标签所有属性的对象)。

  但是这个属性是道具中没有声明接收的所有对象。

  如果你使用道具来获取值,并且你在道具中声明了你想要获取的值。

  那么:得到的值是未定义的。

  注意:

  Attrs获取不需要未在props中声明的收据的值。

  第一个参数props获得的值需要在props中声明和接收。

  有一个发出事件分布,(此事件是传递到父组件所必需的)

  有槽。

  模板

  div @click=sonHander

  是我的子组件中的数据。

  /div

  /模板

  脚本

  从“vue”导入{ defineComponent,setup };

  导出默认定义组件({

  姓名: NoCont ,

  道具:{

  我的头衔:{

  类型:对象

  }

  },

  设置(道具、上下文){

  //output {title:父组件传递的值}

  console.log(props==,props . my title);

  //输出别人的标题[使用上下文获取值,不需要道具接受]

  console.log(context==,context . attrs . other title);

  //output undefined,因为context不需要用props来接受。

  console.log(contextmytitle==,context . attrs . my title);

  函数sonHander(){

  Context.emit(sonclick ,子组件被传递到父组件)

  }

  return {sonHander}

  }

  });

  /脚本

  3.子组件将事件发送到父组件。

  模板

  div @click=sonHander

  是我的子组件中的数据。

  /div

  /模板

  脚本

  从“vue”导入{ defineComponent,setup };

  导出默认定义组件({

  姓名: NoCont ,

  道具:{

  我的头衔:{

  类型:对象

  }

  },

  设置(道具、上下文){

  函数sonHander(){

  Context.emit(sonclick ,子组件被传递到父组件)

  }

  return {sonHander}

  }

  });

  /script4。优化事件调度

  我们知道第二个参数上下文是一个对象。

  对象中有三个属性attrs、slots和emit。

  事件分发的时候,直接用emit就可以了。

  模板

  div @click=sonHander

  是我的子组件中的数据。

  /div

  /模板

  脚本

  从“vue”导入{ defineComponent,setup };

  导出默认定义组件({

  姓名: NoCont ,

  道具:{

  我的头衔:{

  类型:对象

  }

  },

  设置(道具,{属性,插槽,发射}){

  //直接使用emit调度事件。

  函数sonHander(){

  发出( sonclick ,子组件被传递到父组件)

  }

  return {sonHander}

  }

  });

  /script5。获取父组件传递的值。

  我们将使用props参数来获取值。

  并使用属性获取值。

  模板

  人力资源/

  H2组件/h2

  div @click=sonHander

  是我的子组件中的数据。

  /div

  H2用道具宣告收货=={{ mytitle }}/h2

  使用h2参数attrs得到=={{ attrs.othertitle }}/h2。

  /模板

  脚本

  从“vue”导入{ defineComponent,setup };

  导出默认定义组件({

  姓名: NoCont ,

  道具:{

  我的头衔:{

  类型:对象

  }

  },

  设置(道具,{属性,插槽,发射}){

  函数sonHander(){

  发出( sonclick ,子组件被传递到父组件)

  }

  return {sonHander,attrs}

  }

  });

  /脚本

  

附使用setup函数时需要注意几点:

  设置功能的设置执行时间介于beforeCreate和created之间。因为设置执行时间在创建时间之间,所以组件刚刚创建,而数据和方法还没有初始化。因此,您不能在data和methodssetup中使用它来指向未定义的setup。只能同步,不能异步。以上是解释vue3中设置函数的参数-道具和上下文的详细内容。更多信息请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: