render props(vue2.0中的render函数怎么实现双向数据绑定)

2024-07-04 20:10:11 3

render props(vue2.0中的render函数怎么实现双向数据绑定)

各位老铁们,大家好,今天由我来为大家分享render props,以及vue2.0中的render函数怎么实现双向数据绑定的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

本文目录

vue2.0中的render函数怎么实现双向数据绑定

一,先创建一个叫eventbus的vue对象,什么配置都不需要,就只是拿来做一个event bus而已。第二,因为组件的props不允许更改,所以呢要用另一个变量来作为中转,也就是呢,组件不能用functional为true了。然后组件里头定义了个currentValue,绑定在props定义的value,这样:data: function() { return { currentValue: this.value }}第三,组件里头添加watch属性,监听value和currentValue的变化,这样:watch: { value: function(newValue, oldValue) { this.currentValue = newValue; //这里有点诡异,最后说document.getElementById(inputId).value=this.currentValue; }, currentValue: function(newValue){ eventbus.$emit(’model-change’, this.modelName, newValue); }}这里,还需要在props里头加一个modelName的字段给组件标签绑定,后面有用呢。。第四,在input标签里头要绑个input的事件,这样:var that = this;createElement(’input’, { //... ’on’: { ’input’: function(event){ that.currentValue = event.target.value; } }})第五,绑定这个标签的Vue对象里头,要加个created的钩子,绑个model-change的事件,这样:created: function() { var that = this; eventbus.$on(’model-change’, function(modelName, modelValue) { Vue.set(that.$data, modelName, modelValue); });}最终,标签变成了这样:《my-component :value="user.name" model-name="user.name"》《/my-component》user.name的默认值是Mary,渲染出来的时候也是显示Mary,敲键盘改值改成xxx,控制台里头看一下,user.name也变成了xxx了,在控制台里头将user.name改成abc,框里头也变成abc了。终于可以双向绑定了。

关于HOC、RenderProps、Hooks和使用场景

本文会用实际列子对三者进行比较

例子: 现在有两个公共组件,分别是 处理QQ、手机号码的组件。

上面 MyForm 组件使用了 QQ 、 Phone 高阶组件,可以发现以下问题

同样用上面例子

还是上面的例子

HOC 跟 renderProps也有它的存在理由的。 ①.如果组件里面还有其他渲染,不纯粹是处理state的时候可以用HOC。 ②.至于renderProps我举个真实场景,我有很多个按钮,每个按钮点击会打开不同的Dialog。一般做法的,通过定义多个 visible 的state控制Dialog,如下

①.纯粹是复用state,复用多个组件 用 hook 。 ②.使用单个组件,并且组件有自己的渲染内容可以用 HOC 。 ③.状态不需要外部使用而且只用单个组件,可以用 render props 。

(PS:具体问题具体分析,还是要多做比较,书上得来终觉浅 绝知此事要躬行。)

[转]为什么在 React 的 Render 中使用箭头函数和 bind 会造成问题

***隐藏网址***

在 render 中使用箭头函数或绑定会导致子组件重新渲染,即使 state 并没有改变。作者推荐使用提取子组件或在 HTML 元素中传递数据的方式来避免绑定。 这个例子中,我在 render 中使用一个箭头函数来绑定每个删除按钮对应的用户 ID。

点击 CodeSandbox 来查看及演示完整的 demo。(CodeSandbox 很酷,是一个 React 在线器,可以实时编译和展示当前的界面。)

在 35 行中,我使用了一个箭头函数将一个值传递给了 deleteUser 函数,这就是问题的所在。

要查看为什么会这样,先来看看 User.js:

每次 render 调用时,控制台上都会打印日志。User 已经被声明为 PureComponent。所以 User 应该只在 props 或者 state 改变时才会重新 render。但是,当你点击 delete 按钮时, 对于每一个 User 实例,都会调用 render

原因在于:父组件在 props 中传递了一个箭头函数。 箭头函数在每次 render 时都会重新分配(和使用 bind 的方式相同) 。所以,尽管我将 User 声明为 PureComponent,User 的父组件中的箭头函数导致 User 组件为所有的用户实例传递了一个新的函数。所以当点击任何删除按钮时,每个用户实例都会重新 render。

结论:

避免在 render 中使用箭头函数和绑定。否则会打破 shouldComponentUpdate 和 PureComponent 的性能优化。

先来看个例子比较一下在 render 中不使用箭头函数的差异。

点击 CodeSandbox 查看和运行完整 demo。

在这个例子中,index.js 的 render 中没有箭头函数了。相关的数据被传到 User.js:

在 User.js 中,onDeleteClick 调用了在 props 中传递的 onClick 函数,并传递了相应的 user.id。

当你再次点击 delete 按钮时,其他的用户再也不会调用 render 了!

为了最佳性能:

React + Redux 性能优化(一):理论篇

关于render props,vue2.0中的render函数怎么实现双向数据绑定的介绍到此结束,希望对大家有所帮助。

render props(vue2.0中的render函数怎么实现双向数据绑定)

本文编辑:admin

本文相关文章:


损失函数曲线(DFSS培训咨询中的质量损失函数和质量特性波动有什么关系)

损失函数曲线(DFSS培训咨询中的质量损失函数和质量特性波动有什么关系)

这篇文章给大家聊聊关于损失函数曲线,以及DFSS培训咨询中的质量损失函数和质量特性波动有什么关系对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录DFSS培训咨询中的质量损失函数和质量特性波动有什么关系怎样使损失函数在梯度方向上

2024年9月30日 16:45

求解:db2 length函数疑问?winrar64位如何破解我是在他的官网下载的

求解:db2 length函数疑问?winrar64位如何破解我是在他的官网下载的

大家好,今天小编来为大家解答以下的问题,关于db2官网,求解:db2 length函数疑问这个很多人还不知道,现在让我们一起来看看吧!本文目录求解:db2 length函数疑问winrar64位如何破解我是在他的官网下载的db2中对原有的表

2024年9月30日 10:25

phpforeach(PHP  关于foreach函数的问题)

phpforeach(PHP 关于foreach函数的问题)

这篇文章给大家聊聊关于phpforeach,以及PHP 关于foreach函数的问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录PHP 关于foreach函数的问题php中foreach怎么控制循环次数php代码for

2024年9月30日 09:10

matlab求二元函数最小值(怎么用matlab求R内的二元函数最小值啊 可能是近似)

matlab求二元函数最小值(怎么用matlab求R内的二元函数最小值啊 可能是近似)

大家好,今天小编来为大家解答以下的问题,关于matlab求二元函数最小值,怎么用matlab求R内的二元函数最小值啊 可能是近似这个很多人还不知道,现在让我们一起来看看吧!本文目录怎么用matlab求R内的二元函数最小值啊 可能是近似mat

2024年9月29日 23:10

matlab二元隐函数绘图(matlab 隐函数求解以及绘图)

matlab二元隐函数绘图(matlab 隐函数求解以及绘图)

大家好,matlab二元隐函数绘图相信很多的网友都不是很明白,包括matlab 隐函数求解以及绘图也是一样,不过没有关系,接下来就来为大家分享关于matlab二元隐函数绘图和matlab 隐函数求解以及绘图的一些知识点,大家可以关注收藏,免

2024年9月29日 20:40

attenuation(函数信号衰减40db什么意思)

attenuation(函数信号衰减40db什么意思)

这篇文章给大家聊聊关于attenuation,以及函数信号衰减40db什么意思对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录函数信号衰减40db什么意思maya中attenuation是什么意思函数信号衰减40db什么意思函

2024年9月29日 11:50

column函数的使用(EXCEL中“column”函数和“MOD”函数的用法)

column函数的使用(EXCEL中“column”函数和“MOD”函数的用法)

其实column函数的使用的问题并不复杂,但是又很多的朋友都不太了解EXCEL中“column”函数和“MOD”函数的用法,因此呢,今天小编就来为大家分享column函数的使用的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析

2024年9月29日 04:40

replicate函数(基于python的opencv学习——copyMakeBorder()函数)

replicate函数(基于python的opencv学习——copyMakeBorder()函数)

大家好,今天小编来为大家解答以下的问题,关于replicate函数,基于python的opencv学习——copyMakeBorder()函数这个很多人还不知道,现在让我们一起来看看吧!本文目录基于python的opencv学习——copy

2024年9月28日 08:15

mysql查询大于某个日期(如何利用MySQL函数查询特定的日期时间)

mysql查询大于某个日期(如何利用MySQL函数查询特定的日期时间)

“mysql查询大于某个日期”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看mysql查询大于某个日期(如何利用MySQL函数查询特定的日期时间)!本文目录如何利用MySQL函数查询特定的日期时间mysql 日期在数据库中用

2024年9月27日 20:30

c语言取余代码(c语言中,怎样使用取余数的函数)

c语言取余代码(c语言中,怎样使用取余数的函数)

这篇文章给大家聊聊关于c语言取余代码,以及c语言中,怎样使用取余数的函数对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录c语言中,怎样使用取余数的函数C语言程序设计的取余c语言取余mode怎么用c语言编程问题 取余C语言怎么求

2024年9月27日 06:30

evaluate为什么出不来结果(为什么这个有的可以出结果,有的却不能呢我套用的是=evaluate()函数求高人指点呀谢谢了)

evaluate为什么出不来结果(为什么这个有的可以出结果,有的却不能呢我套用的是=evaluate()函数求高人指点呀谢谢了)

“evaluate为什么出不来结果”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看evaluate为什么出不来结果(为什么这个有的可以出结果,有的却不能呢我套用的是=evaluate()函数求高人指点呀谢谢了)!本文目录为什

2024年9月27日 03:45

cesium的datasource(Cesium快速上手9-Camera和Scene中的其他函数使用)

cesium的datasource(Cesium快速上手9-Camera和Scene中的其他函数使用)

大家好,关于cesium的datasource很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Cesium快速上手9-Camera和Scene中的其他函数使用的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您

2024年9月9日 18:01

day函数是什么意思(函数DAY($A$3)*4-4 代表什么意思)

day函数是什么意思(函数DAY($A$3)*4-4 代表什么意思)

各位老铁们好,相信很多人对day函数是什么意思都不是特别的了解,因此呢,今天就来为大家分享下关于day函数是什么意思以及函数DAY($A$3)*4-4 代表什么意思的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录

2024年9月8日 10:45

递归算法解决八皇后问题(用递归函数设计八皇后问题的回溯算法C++代码)

递归算法解决八皇后问题(用递归函数设计八皇后问题的回溯算法C++代码)

大家好,如果您还对递归算法解决八皇后问题不太了解,没有关系,今天就由本站为大家分享递归算法解决八皇后问题的知识,包括用递归函数设计八皇后问题的回溯算法C++代码的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录用递归

2024年9月8日 09:01

result函数(matlab中Result函数什么意思)

result函数(matlab中Result函数什么意思)

大家好,今天小编来为大家解答以下的问题,关于result函数,matlab中Result函数什么意思这个很多人还不知道,现在让我们一起来看看吧!本文目录matlab中Result函数什么意思mysql_store_result的函数原型c语

2024年9月8日 07:15

c语言lseek函数的用法(问一个关于lseek函数的效率问题)

c语言lseek函数的用法(问一个关于lseek函数的效率问题)

这篇文章给大家聊聊关于c语言lseek函数的用法,以及问一个关于lseek函数的效率问题对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录问一个关于lseek函数的效率问题C语言,更改指定位置数据文件内容,求大神c语言实现文件内

2024年9月7日 14:45

字符串长度不同怎样取(怎样用EXCEL函数选长度不一样的字符串如A14-1208-01与A14D-1208-01要选的字符分别是A14-1208与A14D-1208)

字符串长度不同怎样取(怎样用EXCEL函数选长度不一样的字符串如A14-1208-01与A14D-1208-01要选的字符分别是A14-1208与A14D-1208)

本篇文章给大家谈谈字符串长度不同怎样取,以及怎样用EXCEL函数选长度不一样的字符串如A14-1208-01与A14D-1208-01要选的字符分别是A14-1208与A14D-1208对应的知识点,文章可能有点长,但是希望大家可以阅读完,

2024年9月7日 08:30

指数函数图像怎么画(指数函数的图象如何画)

指数函数图像怎么画(指数函数的图象如何画)

各位老铁们,大家好,今天由我来为大家分享指数函数图像怎么画,以及指数函数的图象如何画的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录指数函数的图象如

2024年9月6日 18:05

概率密度函数和分布函数(如何区别概率密度函数和分布函数)

概率密度函数和分布函数(如何区别概率密度函数和分布函数)

“概率密度函数和分布函数”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看概率密度函数和分布函数(如何区别概率密度函数和分布函数)!本文目录如何区别概率密度函数和分布函数概率密度函数与分布函数有什么区别和联系概率密度函数和分布

2024年9月6日 10:20

python递归函数考试题(python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数)

python递归函数考试题(python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数)

本篇文章给大家谈谈python递归函数考试题,以及python题目:要求用递归、递推和Lambda三种方式编写power(n,x)函数对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解

2024年9月6日 03:40

更多文章:


html5模板简单css(会CSS的来,有偿请人写一个简单的html5页面,有样图)

html5模板简单css(会CSS的来,有偿请人写一个简单的html5页面,有样图)

本文目录会CSS的来,有偿请人写一个简单的html5页面,有样图用HTML5和CSS3怎么写出两行四列排版麻烦用HTML5与CSS实现以下样式,写出代码:html5外部id的css怎么写html5 css 内边框怎么写会CSS的来,有偿请人

2024年7月13日 05:44

气场修炼手册?青春修炼手册原唱

气场修炼手册?青春修炼手册原唱

各位老铁们好,相信很多人对修炼手册都不是特别的了解,因此呢,今天就来为大家分享下关于修炼手册以及气场修炼手册的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录气场修炼手册青春修炼手册原唱刘俊良修炼手册歌词自我修炼手

2024年7月12日 14:50

二进制转换十进制(111001)2  ( )10(二进制如何转换是十进制)

二进制转换十进制(111001)2 ( )10(二进制如何转换是十进制)

本文目录二进制如何转换是十进制二进制转化成十进制怎么确定符号将二进制数11100101转换成十进制、八进制、十六进制将二进制数1101转换为十进制数是多少将二进制数111001转化为十进制和八进制将111001.101二进数转化为十进制数,

2024年6月29日 18:07

零基础 python处理excel数据(Python怎么处理Excel数据)

零基础 python处理excel数据(Python怎么处理Excel数据)

大家好,关于零基础 python处理excel数据很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Python怎么处理Excel数据的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,

2024年8月13日 18:35

excel快速回到顶部(excel里如何快速回到顶部)

excel快速回到顶部(excel里如何快速回到顶部)

本文目录excel里如何快速回到顶部excel筛选后总回到顶层,怎么回到筛选项excel文件如何快速回到顶部excel表格怎么迅速回到最上面手机怎样回到excel表格顶部excel里如何快速回到顶部  excel里快速回到顶部快捷键为CTR

2024年7月9日 23:35

jquery获取id的值(jquery取动态id的值)

jquery获取id的值(jquery取动态id的值)

本文目录jquery取动态id的值jquery通过name,id名称获取当前value值jquery中怎么获取div的id值jquery怎么获取元素id值jquery获取按钮的id的值jquery怎么获得元素的属性id值jQuery如何根据

2024年5月9日 20:43

dcdc电源模块(金升阳dcdc模块没有输出)

dcdc电源模块(金升阳dcdc模块没有输出)

本文目录金升阳dcdc模块没有输出如何正确测量DCDC模块的电源纹波指标dcdc电感失效dcdc电源间距太近拍频问题dcdc电源模块有什么用欣锐dcdc辅助电源启动不起来dcdc是干啥的哈佛H6DCDC模块在哪dcdc电源模块的工作原理是什

2024年6月4日 17:55

vb中tooltip控件用法(vb tooltiptext怎么用啊)

vb中tooltip控件用法(vb tooltiptext怎么用啊)

本文目录vb tooltiptext怎么用啊vb.net怎么给button加tip提示VB工具栏optionbotton如何使用vb中toolbar 里按钮插入按钮菜单怎么用-----如何用代码实现其菜单项的功能vb.net中如何能使Too

2024年5月11日 13:45

discuz开放平台(请问下我现在网站Discuz系统 能不能实现开放平台啊)

discuz开放平台(请问下我现在网站Discuz系统 能不能实现开放平台啊)

本文目录请问下我现在网站Discuz系统 能不能实现开放平台啊discuz x1.5的简介如何将百度开放平台、谷歌开放平台、淘宝开放平台集成到Discuz论坛(Discuz x2.5最新版)Discuz论坛怎么开通云平台如何开通Discuz

2024年3月24日 15:35

wincc教程编程实例详解(wincc安装教程)

wincc教程编程实例详解(wincc安装教程)

本文目录wincc安装教程siemens s7 在WinCC中怎么用C语言编程使物体从A位置慢慢移动到B位置 要具体的操作步骤或具体C语言!!!谢wincc安装教程wincc安装步骤:1.首先下载原始的win7官方iso映像并将其放置在C盘

2024年7月15日 08:42

vue引用js文件(vue文件里面怎么引用外部的js文件)

vue引用js文件(vue文件里面怎么引用外部的js文件)

本文目录vue文件里面怎么引用外部的js文件VUE引用外部js,并使用其中的变量/方法vue引用并使用本地js(局部引用,全局引用)vue引用public中的js文件vue如何引入js文件Vue批量全局引入js及对应方法vue文件里面怎么引

2024年7月22日 11:19

常用设计模式有哪些(设计模式都有哪些)

常用设计模式有哪些(设计模式都有哪些)

本文目录设计模式都有哪些java中常用的设计模式有哪些python常用的几种设计模式是什么Android 开发中常用到的设计模式有哪些设计模式有二十几种都是哪些设计模式都有哪些总体来说设计模式分为三大类:一、创建型模式,共五种:工厂方法模式

2024年7月12日 07:15

h5神兽平台正规的代理(大厂注册公司代理公司(河北大厂注册公司流程))

h5神兽平台正规的代理(大厂注册公司代理公司(河北大厂注册公司流程))

大家好,h5神兽平台正规的代理相信很多的网友都不是很明白,包括大厂注册公司代理公司(河北大厂注册公司流程)也是一样,不过没有关系,接下来就来为大家分享关于h5神兽平台正规的代理和大厂注册公司代理公司(河北大厂注册公司流程)的一些知识点,大家

2024年8月11日 19:16

新冠疫情防控系列长图发布(疫情防控动画手抄报 手抄报简单又好看)

新冠疫情防控系列长图发布(疫情防控动画手抄报 手抄报简单又好看)

本文目录疫情防控动画手抄报 手抄报简单又好看新冠十大症状公示图防控疫情手抄报怎么画疫情防控手抄报图片六年级广州发布9号通告广州发布9号通告图片新冠六篇系列是哪六篇关于预防新冠手抄报 预防疾病手抄报新冠防疫手抄报图片大全疫情防控动画手抄报 手

2024年3月18日 22:15

叫爸爸vbs代码(求个不叫爸爸就关机文件)

叫爸爸vbs代码(求个不叫爸爸就关机文件)

大家好,关于叫爸爸vbs代码很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于求个不叫爸爸就关机文件的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录求个不

2024年7月26日 09:20

文章php源码(php源码 只读取最好三篇文章)

文章php源码(php源码 只读取最好三篇文章)

本文目录php源码 只读取最好三篇文章新浪博客里面如何在博文中书写’课件代码‘而不出错,和如何在博客文章中显示php源码而不是显示php(如下文章的 php源代码只在最后加行不行php源码 只读取最好三篇文章你要进到$chapter_han

2024年3月3日 13:25

keep back(关于keep的短语【初中】)

keep back(关于keep的短语【初中】)

本文目录关于keep的短语【初中】请问keep back和keep from 都有阻止的意思,有什么区别吗keep back是什么意思keep+副词吗keepback的意思keepback的意思是什么“keep back”是什么意思keep

2024年6月28日 07:17

网页特效精灵(按键精灵和网页精灵的区别)

网页特效精灵(按键精灵和网页精灵的区别)

本文目录按键精灵和网页精灵的区别精灵宝可梦:喷火龙mega进化改变属性会是什么效果为什么说特效赶上了mega进化网页中插入了表格,网页特效精灵的文字特效可不可以用在单个的行或列使文字闪动可以的话把代码复制哪位哥哥姐姐能告诉我怎么实现页面跳转

2024年6月27日 07:22

java开发环境下载(开始用java怎么下载安装开发环境、设置变量等等,有完整详细的步骤吗谢谢啦!)

java开发环境下载(开始用java怎么下载安装开发环境、设置变量等等,有完整详细的步骤吗谢谢啦!)

本文目录开始用java怎么下载安装开发环境、设置变量等等,有完整详细的步骤吗谢谢啦!如何下载Java运行环境Greenfoot(JAVA开发环境)官方版3.5.1版本在哪有下载开始用java怎么下载安装开发环境、设置变量等等,有完整详细的步

2024年6月8日 13:10

oracle怎么解锁用户(the account is locked怎么解决)

oracle怎么解锁用户(the account is locked怎么解决)

大家好,oracle怎么解锁用户相信很多的网友都不是很明白,包括the account is locked怎么解决也是一样,不过没有关系,接下来就来为大家分享关于oracle怎么解锁用户和the account is locked怎么解决的

2024年7月18日 16:16

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1732
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1153
标签列表

热门搜索