Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷 2.jQuery介绍 jQuery是继prototype之后又一个优秀的Javascript...它是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器。 jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。...由美国人John Resig在2006年1月发布 jQuery是免费、开源的 jQuery分类: WEB版本:我们主要学习研究 (jQuery-版本.js 、 jQuery-版本-min.js)...获得jQuery对象,底层使用数组进行维护的,可以存放多个对象。 //然后通过get()可以从jquery对象转换成 dom对象。参数:数组的下标,可以省略。如果省略下标获得dom 数组。...后面第一个兄弟 语法:$("A + B") --> A标签后面的第一个兄弟 后面的所有兄弟 语法:$("A ~ B") --> A标签后面的所有兄弟 3.基本过滤 :first 获得第一个 :last
React 事件机制onClick={this.handleClick.bind(this)}>点我React并不是将click事件绑定到了div的真实DOM上,而是在document...即没有任何包含关系的组件,包括兄弟组件以及不在同一个父级中的非兄弟组件。...可以使用自定义事件通信(发布订阅模式)可以通过redux等进行全局状态管理如果是兄弟组件通信,可以找到这两个兄弟节点共同的父节点, 结合父子间通信方式进行通信。...(2)经过调和过程,React 会以相对高效的方式根据新的状态构建 React 元素树并且着手重新渲染整个 UI 界面;(3)在 React 得到元素树之后,React 会自动计算出新的树与老树的节点差异...(片段):可以返回多个元素;Portals(插槽):可以将子元素渲染到不同的 DOM 子树种;字符串和数字:被渲染成 DOM 中的 text 节点;布尔值或 null:不渲染任何内容。
/button> }}你觉得你这样设置点击事件会有什么问题吗?...由于onClick使用的是匿名函数,所有每次重渲染的时候,会把该onClick当做一个新的prop来处理,会将内部缓存的onClick事件进行重新赋值,所以相对直接使用函数来说,可能有一点的性能下降修改...可以使用自定义事件通信(发布订阅模式)可以通过redux等进行全局状态管理如果是兄弟组件通信,可以找到这两个兄弟节点共同的父节点, 结合父子间通信方式进行通信。...在 React 中渲染集合时,向每个重复的元素添加关键字对于帮助React跟踪元素与数据之间的关联非常重要。...a标签默认事件禁掉之后做了什么才实现了跳转?
react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,所以在react中,是单向数据流,推崇结合immutable来实现数据不可变。 hooks用过吗?...3.因为调用方式不同,在函数组件使用中会出现问题 在操作中改变状态值,类组件可以获取最新的状态值,而函数组件则会按照顺序返回状态值 React Hooks(钩子的作用) Hook 是 React 16.8...父传子是在父组件中直接绑定一个正常的属性,这个属性就是指具体的值,在子组件中,用props就可以获取到这个值 // 子组件: Child const Child = props =>{ return...使用context,context相当于一个大容器,我们可以把要通信的内容放在这个容器中,这样不管嵌套多深,都可以随意取用,对于跨越多层的全局数据可以使用context实现。...可以使用自定义事件通信(发布订阅模式),使用pubsub-js 可以通过redux等进行全局状态管理 如果是兄弟组件通信,可以找到这两个兄弟节点共同的父节点, 结合父子间通信方式进行通信。
Context使用了Provider和Customer模式,在顶层的Provider中传入value,在子孙级的Consumer中获取该值,并且能够传递函数,用来修改context 声明一个全局的 context...Consumer 中可以直接通过 name 获取父组件的值 子组件。...状态数据状态追踪麻烦 EventEmitter 可支持兄弟,父子组件通讯 要引入外部插件 路由传参 可支持兄弟组件传值,页面简单数据传递非常方便 父子组件通讯无能为力 onRef 可以在获取整个子组件实例...forwardRef在高阶组件中可以获取到原始组件的实例.这个功能在技巧 18 会着重讲 9.static 使用 场景:声明静态方法的关键字,静态方法是指即使没有组件实例也可以直接调用 export default...components 分开; 2.V4是集中式 router,通过 Route 嵌套,实现 Layout 和 page 嵌套,Layout 和 page 组件 是作为 router 的一部分 3.在V3
本文主要讲解web API常用的方法,主要内容如下: 1:绑定事件的几种方式 2:解绑事件的几种方式 3:创建元素的几种方式 4:获取节点的几种方式 一、为元素绑定事件三种方式: 1 对象.on+事件类型...=事件处理函数 例子: my$("btn").onclick=function(){}; 事件处理函数:可以是命名函数,也可以是匿名函数 2 对象.addEventListener...(同一个元素,注册了多个相同的事件,只能执行最后一个) 例子: my$("btn").onclick=null; 2 对象.removeEventListener("事件类型",事件处理函数名字,false...$("txt").onkeyup=function () 三、创建元素的三种方式 1、 //创建p标签 //如果是在页面全部加载完毕后通过下面方式创建元素,会把页面中所有的内容全部干掉 document.write...); //总结:获取节点的代码,谷歌是获取节点,获取元素的代码,谷歌是获取元素 //但是,到了IE8中,获取节点的代码是获取元素,获取元素的代码,不支持
Context使用了Provider和Customer模式,在顶层的Provider中传入value,在子孙级的Consumer中获取该值,并且能够传递函数,用来修改context 声明一个全局的 context...Consumer 中可以直接通过 name 获取父组件的值 子组件。...父子组件通讯无能为力 onRef 可以在获取整个子组件实例,使用简单 兄弟组件通讯麻烦,官方不建议使用 ref 同 onRef 同 onRef redux 建立了全局的状态管理器,兄弟父子通讯都可解决...forwardRef在高阶组件中可以获取到原始组件的实例.这个功能在技巧 18 会着重讲 9.static 使用 场景:声明静态方法的关键字,静态方法是指即使没有组件实例也可以直接调用 export default...Route 嵌套,实现 Layout 和 page 嵌套,Layout 和 page 组件 是作为 router 的一部分; 3.在V3 中的 routing 规则是 exclusive,意思就是最终只获取一个
获取元素 (1)....获取子节点 ③. elemnet.nextSibling 获取下一个兄弟 ④. element.previousSibling...获取上一个兄弟 (2)....无法为后添加的元素执行绑定 (2). on()函数的第二种使用方法——委托给父元素进行事件代理 ①. $('parent').on('事件名称', '子元素选择器', fn) A....click()/bind(),因为在执行此事件绑定时,这些元素在DOM还不存在,必须将相关事件委托给DOM树上己经存在父元素 41.
React组件的构造函数有什么作用?它是必须的吗?..., 为了性能等考虑, 尽量在constructor中绑定事件除了在构造函数中绑定 this,还有其它方式吗你可以使用属性初始值设定项(property initializers)来正确绑定回调,create-react-app...React如何获取组件对应的DOM元素?可以用ref来获取某个子节点的实例,然后通过当前class组件实例的一些特定属性来直接获取子节点实例。...如果元素由 div 变成 p,React 会销毁 div 及其子孙节点,并新建 p 及其子孙节点开发者可以通过 key 来暗示哪些子元素在不同的渲染下能保持稳定fetch封装npm install whatwg-fetch...但是,同一个 componentDidMount 中可能也包含很多其它的逻辑,如设置事件监听,而之后需在 componentWillUnmount 中清除。
用于解决外部数据撕裂问题useInsertionEffect这个hooks只建议在css in js库中使用,这个hooks执行时机在DOM生成之后,useLayoutEffect执行之前,它的工作原理大致与...,实现了对所有事件的中心化管控React引入事件池避免垃圾回收,在事件池中获取或释放事件对象,避免频繁的创建和销毁React事件机制和原生DOM事件流有什么区别虽然合成事件不是原生DOM事件,但它包含了原生...:事件委托把多个子元素同一类型的监听函数合并到父元素上,通过一个函数监听的行为叫事件委托我们写的React事件是绑定在DOM上吗,如果不是绑定在哪里React16的事件绑定在document上, React17...DOM节点的方法Context常规的组件数据传递是使用props,当一个嵌套组件向另一个嵌套组件传递数据时,props会被传递很多层,很多不需要用到props的组件也引入了数据,会造成数据来源不清晰,多余的变量定义等问题...Element对象)中只记录了子节点,没有记录兄弟节点,因此渲染不可打断fiber(fiberNode对象)是一个链表,它记录了父节点、兄弟节点、子节点,因此是可以打断的
而context提供了一种组件之间通讯的新的方式(16.3版本之后),可以共享一些数据,其它的组件都能从context中读取数据(类似于有个数据源,组件可以订阅这个数据源)。...,它接受一个函数做为子元素。...react app是由很多react组件组成的,有的组件之间是有嵌套关系的,可以形成一条“组件链”。...context在一些简单的场景下可以替代部分redux的功能。...图片兄弟组件间通信兄弟间组件通信,一般的思路就是找一个相同的父组件,这时候既可以用props传递数据,也可以用context的方式来传递数据。当然也可以用一些全局的机制去实现通信,比如redux等。
jQuery中的DOM操作 内容操作 html():获取/设置元素标签体中的内容 text():获取/设置元素标签体中的纯文本内容 val():获取/设置元素value属性值内容 属性操作 1....对象1.append(对象2):将对象2添加到对象1元素内部,并且在末尾 prepend():父元素将子元秦追加到开头 对象1.prepend(对象2):将对象2添加到对象1元素内部,并且在开头 appendTo...对象1和对象2是兄弟关系 remove():移除元素 对象.remove(:将对象删除掉 empty():清空元素的所有后代元秦。...//index,element可以省略不写,此时可以通过this获取对象,但不能获取索引值 alert(index+":"+$(element).html...标准绑定方式 jQuery对象.事件方法(回调函数) //例如 button.onClick(function(){ }) on绑定事件/off解除绑定 jQuery对象.on("事件名称",回调函数
你真的了解 React 吗?我们在面试中往往涉及 React 时,第一个问题就是“解释 React 是什么”。解释一种技术是什么,在面试中也是非常常见的引起 话题的题目。...props不能直接修改.主要使用场景是: 兄弟组件通信 父子组件通信 "爷孙组件"组件通信 props的使用范围虽然更加广泛,但也有其局限性:对于嵌套层次较深的组件,如果使用props传递数据,会导致代码冗余...在原生 DOM 事件中设置 setState,可以拿到最新的值 原因: setState 的“异步”并不是说内部由异步代码实现,其实源码本身执行的过程和代码都是同步的, 只是合成事件和钩子函数的调用顺序在更新之前...,导致在合成事件和钩子函数中没法立马拿到更新后的值,形式了所谓的“异步” setState 的批量更新优化也是建立在“异步”(合成事件、钩子函数)之上的,在原生事件和 setTimeout 中不会批量更新...当你需要访问原生 DOM 事件对象时,可以通过合成事件对象的 e.nativeEvent 属性获取到它 合成事件无法获取到真实 DOM,但可以通过 React 提供refAPI 进行获取 详细内容请参考
React 元素的事件处理和 DOM 元素的很相似,但是有一点语法上的不同 React 事件的命名采用小驼峰式(camelCase),而不是纯小写 使用 JSX 语法时你需要传入一个函数作为事件处理函数...,而不是一个字符串 一、事件处理 1.事件绑定 React 元素的事件处理和 DOM 元素类似,但是在语法上有些区别,比如: 传统的html:用双引号包裹,后面必须跟参数 onclick...6.key 只是在兄弟节点之间必须唯一 数组元素中使用的 key 在其兄弟节点之间应该是独一无二的。然而,它们不需要是全局唯一的。...(camelCase),而不是纯小写 使用 JSX 语法时你需要传入一个函数作为事件处理函数,而不是一个字符串 一、事件处理 1.事件绑定 React 元素的事件处理和 DOM 元素类似,但是在语法上有些区别...6.key 只是在兄弟节点之间必须唯一 数组元素中使用的 key 在其兄弟节点之间应该是独一无二的。然而,它们不需要是全局唯一的。
DOM把以上内容都看做是对象 获取元素 DOM在我们实际开发中主要用来操作元素。...获取页面中的元素可以使用以下几种方式: 根据ID获取 根据标签名获取 通过HTML5新增的方法获取 特殊元素获取 根据ID获取 使用 getElementById()方法可以获取带有ID的元素对象。...如果页面中只有一个标签,返回的还是伪数组的形式。 如果页面中没有这个元素,返回的是一个空的伪数组。 还可以获取某个元素(父元素)内部所有指定标签名的子元素。...简单理解:触发---相应机制 网页中的每个元素都可以产生某些可以触发JavaScript的事件,例如,我们可以在用户点击某按钮时产生一个事件,然后去执行某些操作。...兄弟节点 node.nextSibling 返回当前元素的下一个兄弟节点,找不到则返回null,同样,也是包含所有的节点。
常用属性和方法: location.href 获取URL location.href="URL" // 跳转到指定页面 location.reload() 重新加载页面 弹出框 可以在 JavaScript...语法: confirm("你确定吗?") 提示框(了解即可) 提示框经常用于提示用户在进入页面前输入某个值。 当提示框出现后,用户需要输入某个值,然后点击确认或取消按钮才能继续操纵。...语法: prompt("请在下方输入","你的答案") 计时相关 通过使用 JavaScript,我们可以在一定时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。...lastElementChild 最后一个子标签元素 nextElementSibling 下一个兄弟标签元素 previousElementSibling 上一个兄弟标签元素...下面是一个属性列表,这些属性可插入 HTML 标签来定义事件动作。 常用事件 onclick 当用户点击某个对象时调用的事件句柄。
有些数据可以保存到页面中而不用保存到数据库中。 自定义属性获取是通过getAttribute(‘属性’) 获取。 但是有些自定义属性很容易引起歧义,不容易判断是元素的内置属性还是自定义属性。...节点概述 网页中的所有内容都是节点(标签、属性、文本、注释等),在DOM 中,节点使用 node 来表示。...HTML DOM 树中的所有节点均可通过 JavaScript 进行访问,所有 HTML 元素(节点)均可被修改,也可以创建或删除。...节点层级 利用 DOM 树可以把节点划分为不同的层级关系,常见的是父子兄层级关系。 1.6.3....); console.log(div.previousElementSibling); 下一个兄弟元素节点(有兼容性问题) 上一个兄弟元素节点(有兼容性问题)