/** * 报错: * Cannot read property 'setState' of undefined * 原因: this指向不一致.btnAddCount中的this 和render中的this * 解决方法: * 方式一: 使用箭头函数 () => { } 箭头函数可以改变this指向,即谁调用,this指向谁 * 方式二: 绑定函数时,添加 ' .bind(this)' onClick={this.btnSubCount.bind(this) * * 在 React 里面,要将…
14===> 修改state中的值 不能够直接修改 state = { num: 10 } 如 this.state.num+=12; 不能够直接修改 错误 通过 this.setState({ num:this.state.num+12 }) 15==> 获取state中的值 ps==>当你进入一个组件时 不能够使用下面这一种方式 import {StaTest} from "./components/StaTest" 报错 应该为import StaTest fr…
import React from 'react' export default class ClickS extends React.Component { constructor () { super() this.state= { msg: '123' } } render () { return <div> <button onClick={()=>this.show()}>按钮</button> <h2>{this.state.msg}<…
暂时没有想到什么好的解决办法,我现在加了个浏览器判断非ie的话就注册blur事件,这样有个问题就是blur实在别的控件活动焦点的时候,txtStation控件注册的方法是为了填充它紧挨着的一个下拉列表一直没什么兴趣看jQuery,就用自己那点不咋样的javascript硬撑着,今天写一个功能时想尝试一下,用bind注册事件时发现怎么都不好使$("#txtStation").bind("onpropertychange", GetStationLevel); 复制代码…
import React from 'react'; class Baby extends React.Component { constructor (props) { super(props) this.state={ name:'小兵' } //第二种改变this指向的方法 this.changeName2= this.changeName2.bind(this); } // 方法根render同级 方法1 changeName1(){ console.log(this.state.nam…
组件 1. 无状态组件 在React中,组件的名字必须用大写字母开头,而包含该组件定义的文件名也应该是大写字母(便于区分,也可以不是). 无状态组件是纯展示组件,仅仅只是用于数据的展示,只根据传入的props来进行展示,不涉及到state状态处理,通过函数式的方式来创建一个无状态函数式组件(大多数组件都是无状态组件,通过简单的组合可以构建成其他的组件,最后合并成一个大的应用). 无状态函数式组件是一个只带有render方法的组件,通过函数形式或者箭头函数形式创建,该组件无state状态. imp…
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技术栈为react,目前我的情况是三大框架只会angular和Vue.在实际项目中只使用过一次angular5,其余项目都是使用Vue写的.写篇博客记录一下一些项目中经常使用的技巧在Vue和react中不同的实现方法. 使用JSX指定属性值和嵌入表达式: (1)指定变量作为属性值 <div title={type}>type</div> Vue中的写法: <div :title="type">t…
之前项目中动态创建的标签元素  在绑定事件的时候  都是无效  无论如何都不能触发 eg:在页面加载完成之后   再由脚本动态创建的<div>元素  在绑定事件的时候 例如click事件 $("div").click(function(alert("aaa")){}); 那么动态创建的元素是触发不了这个事件的 这是就要用到on来绑定事件了. 但是在W3C中并没有on事件  只有live,delegate 这是由于这里的更新很不及时  ,建议去http:/…
假设我们点击li标签,弹出他的文本,如果是动态添加的li,点击是没有效果的,压根弹不出来文本. 下面博主分享一下为动态添加的元素绑定事件的三种方法,网上一般都是两种,我在这里多增加了一种. 事件案例: <ul id="ul1"> <li><a href="">世界上第三种电梯诞生了,居然是中国人发明的!</a></li> <li><a href="">电视名人辱骂…
Android中为按钮绑定事件的有几种常见方式,你可以在布局文件中为按钮设置id,然后在MainActivity中通过findViewById方法获取按钮对象实例,再通过setOnClickListener为按钮绑定事件,如下所示: //1.获取控件 btn = (Button)findViewById(R.id.button1); //2.绑定事件 btn.setOnClickListener(new OnClickListener() { @Override public void onCl…
在AngularJS中,操作DOM一般在指令中完成,事件监听机制是在对于已经静态生成的dom绑定事件,而如果在指令中动态生成了DOM节点,动态生成的节点不会被JS事件监听. 举例来说: angular.module('myapp',[]) .directive('myText',function(){ return{ restrict:'A', template:'<div ng-click="hello()">Hi everyone</div>', link:…
jquery中直接绑定事件:只能用在程序中一开始就存在的html代码 目标元素.click(function(){ }) jquery中间接绑定事件: 如果目标元素是js生成的,则需要间接绑定事件,用on live 如果jquery的版本小于1.7 用live 目标元素.live("click",funtion(){ }) 如果jquery版本大于1.7都用on 如果版本大于1.7小于1.0 ,on的使用方式 目标元素.on("click",funtion(){ }…
1.jQ操作DOM元素的绑定事件的四种方式       jQ中提供了四种事件监听方式,bind.live.delegate.on,对应的解除监听的函数分别是unbind,die,undelegate,off 2.bind      $(selector).bind(event,data,function)      event:事件,必选,一个或多个事件:data:参数,可选: fn:绑定事件发生时执行的函数,必选       bind()是最直接的,存在最久的绑定方法      优点:兼容性好…
js中this指向是一个难点,花了很长时间来整理和学习相关的知识点. 一. this this是JS中的关键字, 它始终指向了一个对象, this是一个指针; 参考博文: JavaScript函数中的this四种绑定形式 this指向及改变this指向的方法 二. this显示绑定和隐式绑定 1. this显示绑定  含义: 当一个函数没有明确的调用对象的时候, 也就是单纯作为独立函数调用的时候, 将对函数的this使用默认绑定: 绑定到全局的window对象  在显式绑定下: 函数将取得在"…
绑定函数事件 在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例. run(){     alert('我是一个run方法') } <button onClick={this.run}>执行方法</button>  //方法不需要加(),加了(),一旦页面加载进来就执行了  绑定事件处理函数this的几种方法: 方法1: run(){ alert(this.state.n…
一.什么是绑定事件 1.1 事件 我这里指的事件一般指的是React自带的触发事件,我这里先简单举例几个 onClick //鼠标点击 onMouseEnter //鼠标滑进 onMouseLeave //鼠标滑出 1.2 绑定事件 一般有三种绑定事件的方法: /* * 1. constructor函数里统一bind */ constructor(arg){ super(arg) this.handleChange = this.handleChange.bind(this) //... } <…
前言 由于JS的灵活性,我们在React中其实有很多种绑定事件的方式,然而,其实有许多我们常见的事件绑定,其实并不是高效的.所以本文想给大家介绍一下React绑定事件的正确姿势. 常见两种种错误绑定事件 class ErrorExample1 extends Component { balabala(e) {console.log(e)} render() { const { text } = this.state; return ( <Wrapper> {text} <Balabala…
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson9 转载请注明出处,保留原文链接和作者信息. 在 React.js 里面监听事件是很容易的事情,你只需要给需要监听事件的元素加上属性类似于 onClick.onKeyDown 这样的属性,例如我们现在要给 Title 加上点击的事件监听: class Title extends Component { handleClickOnTitle () { console.log('Click on…
下面将以一个小案例来讲解react的框架的一般应用,重点内容在代码段都有详细的解释,希望对大家有帮助 代码块: 代码块: import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; // import App from './App'; import {BrowserRouter as Router,Route,Link} from 'react-router-dom' import { c…
JS高级 事件—— 浏览器客户端上客户触发的行为都称为事件 所有事件都是天生自带的,不需要我们去绑定,只需要我们去触发,通过obj.事件名=function(){ } 事件名:onmousemove:onmouseup:onmousedown:等等 当用户触发一个事件时,浏览器所有详细信息都存在一个叫event的对象身上:我们把它叫事件对象 所有的事件在绑定方法的时候,天生自带一个参数叫Event 鼠标的坐标: event.clientX event.clientY event的兼容性: 在Ch…
****关键字 | setState | JSX语法转换 | 组件更新机制 组件更新机制 setState() 的两个作用 修改state 更新组件 过程:父组件重新渲染时,也会重新渲染子组件,但只会渲染当前组件子树(当前组件以其所有子组件) 组件性能优化 减轻state 减轻state:只存储跟组件渲染相关的数据(比如:count/ 列表数据 /loading等) 注意:不用做渲染的数据不要放在state中 对于这种需要在多个方法中用到的数据,应该放到this中 避免不必要的重新渲染 组件更新…
通讯 | props | prop-types 组件通讯 Props: 组件无论是使用函数声明还是通过 class 声明,都决不能修改自身的 props /* class */ .parent-box { width: 700px; height: 300px; background-color: #eeeeee; border: 1px solid #ca46dd; } .child-box { width: 500px; height: 200px; background-color: #c…
本文介绍的是react新特性react hooks,本文面向的是有一定react开发经验的小伙伴,如果你对react还不是很熟悉的话我建议你先学习react并多多联系. 首先我们都知道react有3种组件:分别是Function函数式无状态组件.class有状态组件.高阶组件.这里不对这3种组件做一一介绍. 本文重点是react hooks 一个最简单的Hooks 首先让我们看一下一个简单的有状态组件: class Example extends React.Component { constr…
其他章节请看: react实战 系列 React 中的表单和路由的原理 React 中的表单是否简单好用,受控组件和非受控是指什么? React 中的路由原理是什么,如何更好的理解 React 应用的路由? 请看下文: 简单的表单 你有见过在生成环境中没有涉及任何表单的应用吗?大多 web 应用都会涉及表单.比如登录.注册.提交信息. 表单由于难用有时名声不好,于是许多框架针对表单做了一些神奇的事情来减轻程序员的负担. React 并未采用神奇的方法,但它却能让表单更容易使用. 在做实验测试 r…
react算是目前最火的js MVC框架了,写一个react系列的博客,顺便回忆一下react的基础知识,新入门前端的小白,可以持续关注,我会从零开始教大家用react开发一个完整的项目,也会涉及到webpack,node等前端知识,每天会更新一篇.这篇react的系列博客会覆盖react目前的所有知识点: 一.React基础1.React 虚拟DOM概念,React的性能高效的核心算法2.React组件,理解什么叫组件化3.React组件嵌套4.JSX内置表达式5.React的生命周期 二.R…
概述 本篇为<React Native之React速学教程>的最后一篇.本篇将带着大家一起认识ES6,学习在开发中常用的一些ES6的新特性,以及ES6与ES5的区别,解决大家在学习React /React Native过程中对于ES6与ES5的一些困惑. ES6的特性 何为ES6? ES6全称ECMAScript 6.0,ES6于2015年6月17日发布,ECMAScript是ECMA制定的标准化脚本语言.目前JavaScript使用的ECMAScript版本为ECMAScript-262.…
英文:Yomi Eluwande  译文:joking_zhang https://segmentfault.com/a/1190000019277029 使用 React 时,我们的默认思维方式应该是 不会强制修改 DOM ,而是通过传入 props 重新渲染组件.但是,有些情况却无法避免修改 DOM . React 中的 Refs 提供了一种访问 render() 方法中创建的 React 元素(或 DOM 节点)的方法. 当父组件需要与子组件交互时,我们通常使用 props 来传递相关信息…
1 什么是JSX语法? 原生JS中,要向页面中挂载html标签,标签一定是被引号''包起来的:document.getElementById('root').append('<div>hello world</div>'); 但在JSX语法中,不需要用引号包起来,这是JSX语法中的显著特点. JSX中有两种类型的标签: 1⃣️普通的html标签(如App.js中的<div>hello</div>) 一般标签的首字母是小写的 2⃣️组件标签(如index.js…
问题描述 在Vue工程中,添加样式,部分需要做到自适应,需要添加resize事件,由于是单页面应用,如果组件初始化的时候绑定事件,在切换页面的时候不去注销事件,如果来回切换,会让resize事件执行多个函数,迅速消耗CPU,浏览器会出现卡顿的情况 解决办法 Vue生命周期mounted 添加 resize事件 Vue生命周期destroy 删除 resize事件 案例 // 定义逻辑函数 function resizeLogic(){ console.log(document.documentE…
react 的第一个组件 写了 react 有一个半月,现在又有半个月没写了,感觉对其仍旧比较陌生. 本文分两部分,首先聊一下 react 的相关概念,然后不使用任何语法糖(包括 jsx)或可能隐藏底层技术的便利措施来构建 React 组件. Tip:从一项新技术的底层元素起步有利于使用者更好的长期使用它 跨平台 大部分 react 应用是在 Web 平台上.而 React Native 和 React VR 这样的项目则创造了 react 应用在其他平台上运行的可能 React 应用主要成分…