vue setup props,vue3 setup函数

  vue setup props,vue3 setup函数

  我们知道SetUp函数是复合API的核心入口函数。下面主要介绍Vue3中setup函数的参数props和上下文的相关信息。有需要的可以参考一下。

  

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

  设置(道具,上下文){}

  第一个参数props:

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

  使用道具接收子组件。

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

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

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

  如果不通过Props接受配置,则输出值是未定义的。

  模板

  div class=box

  父组件

  /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的讲解

  第二个参数:上下文,是一个对象。

  有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}

  }

  });

  /脚本

  4.优化事件分布。

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

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

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

  模板

  div @click=sonHander

  是我的子组件中的数据。

  /div

  /模板

  脚本语言

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

  导出默认定义组件({

  姓名: NoCont ,

  道具:{

  我的头衔:{

  类型:对象

  }

  },

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

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

  函数sonHander(){

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

  }

  return {sonHander}

  }

  });

  /脚本

  5.获取父组件传递的值。

  我们将使用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函数时需要注意几点:

  设置功能的执行时间介于创建前和创建后之间

  由于setup的执行时间在created之间,组件刚刚创建,数据和方法还没有初始化,所以数据和方法不能在setup中使用。

  这在设置中指向未定义。

  设置只能是同步的,不能是异步的。

  

总结

  这就是这篇关于Vue3中SetUp函数的参数属性和上下文的文章。有关Vue3中设置功能参数的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

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

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