当前位置: 首页 > 编程笔记 >

Vue函数式组件-你值得拥有

阮华美
2023-03-14
本文向大家介绍Vue函数式组件-你值得拥有,包括了Vue函数式组件-你值得拥有的使用技巧和注意事项,需要的朋友参考一下

函数式组件特点:

  • 没有管理任何状态
  • 没有监听任何传递给它的状态
  • 没有生命周期方法
  • 它只是接收一些prop的函

我们将这样的组件标记为functional:

  • 无状态 == 无响应式数据
  • 无实例 == 无this上下文

函数式组件的优点:

渲染开销低,因为函数式组件只是函数;

函数式组件基本写法:

 {
 functional: true,
 // Props 是可选的
 props: {
 // ...
 },
 // 为了弥补缺少的实例
 // 提供第二个参数作为上下文
 render: function (createElement, context) {
 // ...
 }
}

下面在通过代码给大家详细介绍vue函数式组件,具体代码如下所示;

{
 functional: true,
 // Props 是可选的
 props: {
 // ...
 },
 // 为了弥补缺少的实例
 // 提供第二个参数作为上下文
 render: function (createElement, context) {
 // ...
 }
}

组件需要的一切都是通过 context 参数传递,它是一个包含如下字段的对象:

  • props: 提供所有prop的对象
  • children:VNode 子节点的数组
  • slots: 一个函数,返回了包含所有插槽的对象
  • scoptedSlots:(2.6.0) 一个暴露传入的作用域插槽的对象,也以函数形式暴露普通插槽
  • data:传递个组件的整个 数据对象 ,作为createElement的第二个参数传入组件
  • parent:对父组件的引用
  • listeners:(2.3.0+) 一个包含了:所有父组件为当前组件祖册的事件监听器对象,是data.on的一个别名
  • injections:(2.3.0+) 如果使用了inject选项,则改对象包含了:应当被注入的属性;

总结

以上所述是小编给大家介绍的Vue函数式组件你值得拥有,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

 类似资料:
  • 本文向大家介绍10个Python小技巧你值得拥有,包括了10个Python小技巧你值得拥有的使用技巧和注意事项,需要的朋友参考一下 列表推导式 你有一个list: bag = [1, 2, 3, 4, 5] 现在你想让所有元素翻倍,让它看起来是这个样子: [2, 4, 6, 8, 10] 大多初学者,根据之前语言的经验会大概这样来做 但是有更好的方法: bag = [elem * 2 for el

  • vue函数式组件functional,如何调用方法向父组件传值? 调用方法会报错:TypeError: _vm.itemClick is not a function

  • 本文向大家介绍你值得拥有的Android Studio开发小技巧,包括了你值得拥有的Android Studio开发小技巧的使用技巧和注意事项,需要的朋友参考一下 上一次发过了一个介绍Studio的,这里再发一个补充下。 我们都知道,Android Studio的功能是非常强大的,也是很智能的。如果有人告诉你学Android开发要用命令行,你可以告诉他Android Studio是谷歌提供给开发者

  • 本文向大家介绍你了解什么是函数式组件吗?相关面试题,主要包含被问及你了解什么是函数式组件吗?时的应答技巧和注意事项,需要的朋友参考一下 函数式组件: 需要提供一个render方法, 接受一个参数(createElement函数), 方法内根据业务逻辑,通过createElement创建vnodes,最后return vnodes createElement函数, 三个参数, 第一个参数是html标

  • 新增于 13.1.0,需要 Vue 版本 >= 2.5.0 从 vue-loader >= 13.3.0 开始,在一个 *.vue 文件中以单文件形式定义的函数式组件,现在在模板编译、有作用域的 CSS 和热重载也有了良好的支持。 要声明一个应该编译为函数式组件的模板,请将 functional 特性添加到模板块中。这样做以后就可以省略 <script> 块中的 functional 选项。 模板

  • 之前创建的锚点标题组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法。它只是一个接收参数的函数。 在这个例子中,我们标记组件为functional,这意味它是无状态 (没有data),无实例 (没有this上下文)。 一个函数式组件就像这样: Vue.component('my-component', { functional: true, // 为了弥补缺少的实例

  • 在一个 *.vue 文件中以单文件形式定义的函数式组件,现在对于模板编译、scoped CSS 和热重载也有了良好的支持。 要声明一个应该编译为函数式组件的模板,请将 functional 特性添加到模板块中。这样做以后就可以省略 <script> 块中的 functional 选项。 模板中的表达式会在函数式渲染上下文中求值。这意味着在模板中,prop 需要以 props.xxx 的形式访问:

  • 我正在将道具传递给组件: 在上面的代码中,我已经注释了给出错误的行。如果我删除该行,它会正常工作并且模板渲染正确(我也可以看到{{MessageId}}的预期值)。因此传递数据的逻辑是正确的。 似乎在 data() 中访问 的方式是错误的。那么如何访问数据中的道具呢?