首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Vue 如何将函数作为 props 传递给组件

可以将字符串、数组、数字和对象作为props传递。但是你能把一个函数当作一个props来传递吗? 虽然可以将函数作为props传递,但这种方式不好。...相反,Vue 有一个专门为解决这问题而设计功能,接下来,我们来看看。 向组件传入函数 获取一个函数或方法并将其作为一个prop传递给子组件相对比较简单。...在React,我们可以将一个函数从父组件传递给子组件,以便子组件能够向上与父组件通信。props 和 data 向下流动,函数调用向上流动。...因此,尽管在Vue可以把函数作为prop传递,但它被认为是一种反模式。 使用事件 事件是我们与 Vue 父组件通信方式。 这里有一个简短例子来说明事件是如何工作。...这并不是完全错误,但是在这种情况下使用事件会更好。 然后,当需要时,子组件不会调用该函数,而只是发出一个事件。然后父组件将接收该事件,调用该函数,拼装将更新传递给子组件 prop。

7.6K20

Kotlin函数作为参数,T.()->Unit 和 ()->Unit 区别

在做kotlin开发,经常看到一些系统函数里,用函数作为参数,但是又和我们自己写不太一样 大概是这样子: public inline fun T.apply(block: T....我们这里来看一下文档是怎么说, ? 输入图片说明 我们这里看一下画原谅色线部分,原来这里作用就是可以this代表对象不同。...---- 我们首先定义两个函数: fun T.afterMersure(f: T.() -> Unit) { } fun T.afterMersure2...(f: () -> Unit) { } 这两个函数是用于,View测量完成之后回调。...,这两个函数唯一区别就是T.()-Unit与()->Unit区别,我们调用时,在代码块里面写this,时候,根据代码提示,我们可以看到,连个this代表含义不一样,T.()->Unit里this

2K30
您找到你想要的搜索结果了吗?
是的
没有找到

Kotlin学习之路(4)函数运用

public 表示该函数为公共方法,而Kotlin默认就表示函数是公开,所以省略了关键字 ③ Java使用 void表示该函数没有返回值,而Kotlin没有关键字void ,若没有返回值不用特别声明...④ Kotlin 新增了关键字 fun,这个fun类似Java 关键字class ⑤ Java声明输入参数格式 “变量 变量名称”而Kotlin 前面说过参数命名 “变量名称:变量类型” ⑥...在Java体系,可变参数可以采用“Object…args”形式。但是在Kotlin中新增了关键字vararg,表示其后面的参数个数不确定。...以可变字符串为例 Java写法“String…args”,而Kotlin写法“vararg args:Sting?”,函数内部解析时候,Kotlin会把可变参数当成一个数组。...,就跟调用arrayOf方法一样,只需在函数名称后面加即可 内联函数 前面我们定义泛型函数appendString时,是把它作为一个全局函数,也就是在类外定义,而不是在类内部定义。

72510

Kotlin 程序设计》第三章 Kotlin 类型系统第三章 Kotlin 类型系统基本数据类型2.字符类型CharKotlin类型系统参考资料

,类型系统用于定义如何将编程语言中数值和表达式归类为许多不同类型,如何操作这些类型,这些类型如何互相作用。...在 Kotlin 函数是对象,基本类型也是对象,所有东西都是对象:数字、字符、布尔和数组。...JavaScript 所有事物都是对象:字符串、数值、数组函数等等。此外,JavaScript 提供多个内建对象,比如 String、Date、Array 等等。...另一个选项是用接受数组大小和一个函数参数工厂函数,用作参数函数能够返回。...我们知道,Java数组是协变。与 Java 不同是,Kotlin 数组是非协变(invariant)。

1.3K30

Kotlin 1.2 新增特性

其他语言特性 注解数组常量 从 Kotlin 1.2 开始,注解数组参数可以使用新数组常量语法而不是 arrayOf 函数来传递: 数组常量语法被限制为注释参数。...例如,当一个 lambda 作为构造函数参数传递给一个对象时,后者可以用于引用另一个必须稍后定义对象: lateinit修饰符现在可以用在顶级属性和局部变量上。...例如,当作为构造函数参数传递给一个对象 lambda 引用另一个对象时,稍后必须定义对象可以使用: 循环中值:1, 2, 3, 1, 2, 3, 1, ......弃用:vararg 单命名参数 为了与注解数组常量保持一致,在命名表单(foo(items = i)) vararg 参数传递单项目已被弃用。...请使用具有相应数组工厂函数展开运算符: 在这种情况下,有一种优化可以消除冗余数组创建,从而防止性能下降。

2.8K70

【读书笔记】《Kotlin in Action》学习笔记(下)

parameters:String) { var p_var = Point() p_val += 99 } 2、 型变和协变( in 和 out )参数在构造函数不受约束 这又是一个特例...} 4、 Kotlin DSL 使用带有 object 参数中缀函数 我只想说,“厉害了,我 Kotlin 哥”!...Kotlin DSL 真的很好用,像大名鼎鼎 anko 库,使用 DSL 实现 Android Layout 非常给力啊,还有 SQL 数据库操作,另外用过一段时间 TornadoFX ,用 DSL...它是一个 object 单例,那么既然是单例为啥不直接使用,还要去作为 should 函数参数呢?这不是毫无意义吗? No !...这是 DSL 哦,它并不是作为数据参数传递给函数,而是作为语法一部分!!!因此你可以有很多 object ,作为不同语法使用,这就是精髓之处啊!

66130

Kotlin Primer·第二章·基本语法

判断一个对象是否为一个类实例,可以使用is关键字 与 Java instanceof关键字类似,但在 Kotlin 如果已经确定了一个对象类型,可以在接下来代码块中直接作为这个确定类型使用。...fun say(str: String): String { return str } 同时,在 Kotlin ,如果像这种简单函数,可以简写为 fun say(str: String):...){ } 2.3.3 变参函数 同 Java 变长参数一样,Kotlin 也支持变长参数 //在Java,我们这么表示一个变长函数 public boolean hasEmpty(String......,使用关键字vararg来表示 fun hasEmpty(vararg strArray: String?)...2.3.5 将函数作为参数 Kotlin ,可以将一个函数作为参数传递给另一个函数 fun lock(lock: Lock, body: () -> T ) : T { lock.lock

38210

来来来,快来围观那个Kotlin

万能冒号,如果一个冒号没有解决问题,那么请用两个冒号。 数组类型表示:以前是String[] xx ,现在是反过来:xxx:Array。...一个目的,说啥就是啥,单词能说清楚就不用约定和各种符号。 使用数组:要加个*。 11、dao代码。...(2)、在类前面加个data就表示这是用来存放数据。 (3)、构造函数什么直接加在类后边。 (4)、别写getter、setter了,自动为你生成。 (5)、属性。...这个很明显是默认值。就这么简单粗暴。 至于其他if else for 等等基本语法,相信你通过cv大法搞一次基本就可以熟练使用了。这年头,你写各种语言helloworld还少吗。...我们再来看看pom依赖吧。

1.2K110

Kotlin 1.2 新增了哪些特性?

其他语言特性 注解数组常量 从 Kotlin 1.2 开始,注解数组参数可以使用新数组常量语法而不是 arrayOf 函数来传递: ? 数组常量语法被限制为注释参数。...例如,当一个 lambda 作为构造函数参数传递给一个对象时,后者可以用于引用另一个必须稍后定义对象: lateinit修饰符现在可以用在顶级属性和局部变量上。...例如,当作为构造函数参数传递给一个对象 lambda 引用另一个对象时,稍后必须定义对象可以使用: ? 循环中值:1, 2, 3, 1, 2, 3, 1, ......弃用:vararg 单命名参数 为了与注解数组常量保持一致,在命名表单(foo(items = i)) vararg 参数传递单项目已被弃用。...请使用具有相应数组工厂函数展开运算符: ? 在这种情况下,有一种优化可以消除冗余数组创建,从而防止性能下降。

2.8K10

再见kotlin--02函数

---- 函数作为编程语言中可复用单元,对编程简化起到至关重要作用。 kotlin作为函数是一等公民一种编程语言,函数似乎成了最闪耀明星。...一、语法定义 1.kotlin语法之----函数定义(万变不离其宗) fun 函数名(变量1:变量类型|n+):返回值类型{ 函数体 return } /** * 计算矩形面积...:相当于对上面的简写形式 /** * 单表达式函数 */ fun area(x: Double, y: Double) = x * y ---- 5.变参测试---vararg /** * 变参测试...---- 6.局部函数 /** * 计算图形边长 */ fun lenOfShape(vararg els: Double): Double { fun circle(r: Double)...你没看错,kotlin函数是一等公民,也是一种数据类型,可以当做一个变量赋值或参 //定义函数变量 var funV: (Double, Double) -> Double //函数变量赋值

47720

Kotlin入门(10)七十二变输入参数

既然Kotlin志在取代Java,就必须练成Java所不具备功夫。本篇文章便从函数输入参数着手,谈谈Kotlin对输入参数改进与增强之处。...这种随时添加对应于程序可变参数,在Java体系,可变参数采用“Object... args”形式;在Kotlin体系,新增了关键字vararg表示其后参数个数是不确定。...以可变字符串参数为例,Java写法为“String... args”,而Kotlin写法为“vararg args: String?”...如此一来,可变参数就成了可变数组参数,同样声明数组参数时也要加上vararg前缀,告诉编译器后面的数组个数是变化。...另外,Kotlin对Java可变参数功能进行了增强,不但支持普通类型可变参数,而且支持数组类型可变参数。 点此查看Kotlin入门教程完整目录

52620

Kotlin | 3.函数定义与调用

本章内容包括: 用于处理集合、字符串和正则表达式函数 使用命名参数、默认参数,以及中辍调用语法 通过扩展函数和属性来适配Java库 使用顶层函数、局部函数和属性架构代码 1、在Kotlin创建集合.../*---------------3.3、作为扩展函数工具函数---------------*/ // joinToString 函数终极版本,和kotlin标准库中看到一模一样...// 如果看看这个函数在库声明: fun listOf(vararg elements: T): List = if (elements.size >...三个点 * - kotlin 使用vararg * * 另一个区别:当需要传递参数已经包装在数组时,调用该函数语法。...Kotlin 允许更灵活代码结构:函数和属性都可以直接在文件声明,而不仅仅在类作为成员。

66220

Kotlin入门(11)江湖绝技之特殊函数

其实在之前文章《Kotlin入门(4)声明与操作数组》里面,就遇到了类似的情况,当时为了采取统一格式声明基本类型数组对象,使用“Array”来声明数组对象,并通过arrayOf函数获得数组对象初始值...(n-1) } 从上看到阶乘函数类似Java“判断条件?...显然这么做代价不菲,所以Kotlin引入了高阶函数这个秘密武器,直接把这个算法作为参数进来,由开发者在调用高阶函数时再指定具体算法函数。...就获取数组对象最大值而言,实现该功能框架高阶函数代码如下所示: //允许将函数表达式作为输入参数进来,就形成了高阶函数,这里greater函数就像是个变量 fun maxCustom(...maxCustomize将作为数组对象成员函数进行调用,而非maxCustom那样把数组对象作为入参。

1.2K10

Kotlin学习笔记

) joinToString(list) joinToString(list, prefix = "# ") 1.7 顶级函数和属性(静态) 在 Java 我们需要把函数和属性放在一个类,在 Kotlin...我们可以把某个函数或属性直接放到某个 Kotlin 文件,把这样函数或属性称之为 顶级函数或属性。...因为 JVM 虚拟机只能执行类代码,所以 Kotlin 会生成一个名叫 JoinKt 类,并且顶级函数是静态,所以可以在 Java 这样调用顶级函数: JoinKt.joinToString(...return Arrays.asList(items); } Kotlin 和 Java 不一样,Kotlin 使用 vararg 关键来定义可变参数: fun listOf(vararg...operator } 2)、展开操作符 通过上面的两段代码比较我们发现:Kotlin 需要显示将可变参数通过 * 展开,然后传递给 asList 函数

1.8K30
领券