<?xml version="1.0" encoding="UTF-8"?>
html-css <![CDATA[<?xml version="1.0" encoding="UTF-8"?>
]]>20181121T114910Z20181122T110758Z闫亚兵desktop.win
http://www.w3school.com.cn/jquery/jquery_selectors.aspyinxiang.win32
html-css
笔试:
-
jquery/css3的选择器jquery:
-
元素选择器:{
KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;p") 选…(“p.intro”) 选取所有 class=“intro” 的 <p> 元素。KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;p#demo&quo…("[href]") 选取所有带有 href 属性的元素。KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;[href=&apo…("[href!=’#’]") 选取所有带有 href 值不等于 “#” 的元素。KaTeX parse error: Expected 'EOF', got '&' at position 2: (&̲quot;[href=’.jpg’]") 选取所有 href 值以 “.jpg” 结尾的元素。
}
css3:{
}
-
i++ ++i简单的理解就是i++是先访问i然后再自增,而++i 则是先自增然后再访问i的值。
-
表格的事件代理利用了事件冒泡和目标元素的特性,动态创建表格
-
margin-top失效问题问题:当两个空的块级元素嵌套时,如果内部的块设置有margin-top属性,而且父元素没有下边解决方法所述的特征,那么内 部块的margin-top属性会绑架父元素(即将margin-top传递凌驾给了父元素)。就好比一个小兵,看到上级有漏洞,就假传圣旨,利用漏洞扩张自己的权利。只要设置父元素的border(栅栏)或者 padding(隔离墙),就能管住这个调皮的下属
解决: 1、设置父元素或者自身的display:inline-block;2、设置父元素的border:1px aqua solid;(>0)3、设置父元素的padding:1px;(>0)4、给父元素设置overflow:hidden;5、给父元素或者自身设置position:absolute;6、设置父元素非空,填充一定的内容。
-
-
pc 浏览器的兼容问题()解决:html css(css3低版本不兼容 PIE.htc) js(事件对象 组织浏览器的默认行文 事件监听等
-
移动端解决:meta标签大全
-
iframeiframe标签是框架的一种形式,也比较常用到,iframe一般用来包含别的页面,例如我们可以在我们自己 的网站页面加载别人网站或者本站其他页面的内容。iframe标签的最大作用就是让页面变得美观。iframe 标签的用法有很多,主要区别在于对iframe标签定义的形式不同
js
1. this
this指向:
this 指的是当前对象,如果在全局范围内使用this,则指代当前页面window;如果在函数中使用 this,则this指向根据当前函数是在什么对象上调用。我们可以使用call和apply改变函数中 this的具体指向。
2. 闭包? 你在哪里使用过闭包?
答案:轮播图,双重嵌套时
3. let var const
区别:1. let添加了块级作用域;
2. let约束了变量提升
3. let有暂时性死区
4. let禁止重复声明变量
5. let不会成为全局对象的属性
6. 以上let所介绍的规则均适用于const命令,不同的是,const声明的变量不能重新赋值,也是由于这 个规则,const变量声明时必须初始化,不能留到以后赋值
-
ajax?ajax是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换。ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。优点: 1、最大的一点是页面无刷新,用户的体验非常好2、使用异步方式与服务器通信,具有更加迅速的响应能力。。3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节 约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求, 和响应对服务器造成的负担4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。5、ajax可使因特网应用程序更小、更快,更友好缺点: 1、ajax不支持浏览器back按钮。2、安全问题 AJAX暴露了与服务器交互的细节。3、对搜索引擎的支持比较弱4、破坏了程序的异常机制。5、不容易调试。
-
get /post区别: 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。get:一般用来进行查询操作,url地址有长度限制,请求的参数都暴露在url地址当中,如果传递中文参数, 需要自己进行编码操作,安全性较低,post:一般用来提交数据,没有数据的长度限制,提交的内容存在于http请求体中,数据不会暴露在url地址 中
-
http/https区别: 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份 认证的网络协议,比http协议安全。
-
本地存储 cookie区别: 1. cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务 器,仅在本地保存。2. cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。存储大小限制也不同, cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的 数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得 多,可以达到5M或更大。3. 数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持; localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的 cookie过期时间之前一直有效,即使窗口或浏览器关闭。4. 作用域不同,sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;localStorage 在 所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。Web Storage 支持事件 通知机制,可以将数据更新的通知发送给监听者。Web Storage 的 api 接口使用更方便。
-
面向对象
-
继承 多太 封装 工厂函数
-
继承有哪些方式?原型链继承:核心: 将父类的实例作为子类的原型缺点: 父类新增原型方法/原型属性,子类都能访问到,父类一变其它的都变了
构造继承: 核心:使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用 到原型)
缺点:方法都在构造函数中定义, 只能继承父类的实例属性和方法,不能继承原型属性 / 方法,无法实现函数复用,每个子类都有父类实例函数的副本,影响性能组合继承: 核心:通过调用父类构造,继承父类的属性并保留传参的优点,然后再通过将父类实例 作为子类原型,实现函数复用
缺点:调用了两次父类构造函数,生成了两份实例(子类实例将子类原型上的那份屏蔽 了)寄生组合继承:核心:通过寄生方式,砍掉父类的实例属性,这样,在调用两次父类的构造的时候, 就不会初始化两次实例方法/属性,避免的组合继承的缺点
缺点:堪称完美,但实现较为复杂
-
-
是否使用过php/node.js/java等后台语言
-
通信 webSocketWebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成 了一条快速通道。两者之间就直接可以数据互相传送。Ajax 轮询这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请 求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资 源。HTML5 定义的 WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
-
h5新增了那些新的特性
-
标签video:表示一段视频并提供播放的用户界面audio: 表示音频canvas: 表示位图区域source: 为video和audio提供数据源track: 为video和audio指定字母svg: 定义矢量图code: 代码段figure: 和文档有关的图例figcaption: 图例的说明time: 日期和时间值mark: 高亮的引用文字datalist: 提供给其他控件的预定义选项keygen: 秘钥对生成器控件output:计算值progress: 进度条menu: 菜单embed: 嵌入的外部资源menuitem: 用户可点击的菜单项main, template, section, nav, aside, article, footer, header
-
属性contenteditable: 规定是否可编辑元素的内容。contextmenu: 指定一个元素的上下文菜单。当用户右击该元素,出现上下文菜单data-*: 用于存储页面的自定义数据draggable: 指定某个元素是否可以拖动dropzone: 指定是否将数据复制,移动,或链接,或删除hidden: hidden 属性规定对元素进行隐藏。spellcheck:检测元素是否拼写错误translate: 指定是否一个元素的值在页面载入时是否需要翻译
-
本地存储
-
CanvasHTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.<canvas> 标签只是图形容器,您必须使用脚本来绘制图形。你可以通过多种方法使用 canvas 绘制路径,盒、圆、字符以及添加图像
-
-
前端的可视化是否接触过?
-
D3.js Echart.js hchart.js
-
-
去重的方式
-
双重的遍历( IndexOf )indexOf() 方法可返回数组中某个指定的元素位置。该方法将从头到尾地检索数组,看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头(没有指定 start 参数时)。如果找到一个 item,则返回 item 的第一次出现的位置。开始位置的索引为 0。
-
如果在数组中没找到指定元素则返回 -1。
利用indexOf()方法查询遍历出的数组在新数组中是否出现,如果出现:则继续遍历数组,如未出现:则 利用push方法添加到新数组中.
利用indexOf()方法查询遍历出的数组在新数组中是否出现,如果出现:则继续遍历数组,如未出现:则 利用push方法添加到新数组中.
2. 利用对象的属性唯一性
-
排序
-
快速排序
-
冒泡排序
-
es6 set
-
sort
-
-
深拷贝 和 浅拷贝值得拷贝和址的传递
-
json/ xmlxml:扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记 语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言json: JSON(JavaScript Object Notation)一种轻量级的数据交换格式,具有良好的可读和便于快速编 写的特性。可在 不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文 本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等) 体系的行为。这些特性使JSON成为理想的数据交换语言。
node.js
-
前端的模块化
-
AMD require.jsAMD是"Asynchronous Module Definition"的缩写,意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。
-
CMD sea.jsSeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同
-
Common.js1、CommonJs规范的出发点:JS没有模块系统、标准库较少、缺乏包管理工具;为了让JS可以在任何地方运行,以达到Java、C#、PHP这些后台语言具备开发大型应用的能力;
-
为什么要有模块化的概念出现
-
命名空间
-
多个模块之间的多重依赖关系
-
代码组织
-
-
node
-
内置的模块
-
第三方的模块
-
自定义模块
-
-
-
-
前端的五大异步流程工具
-
Promise从语法上讲,promise是一个对象,从它可以获取异步操作的消息;从本意上讲,它是承诺,承诺它过一段时间会给你一个结果。promise有三种状态:pending(等待态),fulfiled(成功态),rejected(失败态);状态一旦改变,就不会再变。创造promise实例后,它会立即执行。
-
Promise.allPromise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。
-
Promise.race顾名思义,Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态
-
-
es6 generator函数Generator函数是ES6引入的新型函数,用于异步编程,跟Promise对象联合使用的话会极大降低异步编程的编写难度和阅读难度Generator函数跟普通函数的写法有非常大的区别:一是,function关键字与函数名之间有一个星号;二是,函数体内部使用yield语句,定义不同的内部状态(yield在英语里的意思就是“产出”)
-
node/vue nextTick()nextTick是全局vue的一个函数,在vue系统中,用于处理dom更新的操作。如果想在DOM状态更新后做点什么,则需要用到nextTick。
-
async 函数中 await
-
function aa(){console.log(‘aa’)}
-
const async = () => { await aa() console.log(1)}
-
-
async.jsasync模块是为了解决嵌套金字塔,和异步流程控制而生. async 函数就是 Generator 函数的语法糖。优点: (1)内置执行器。 Generator 函数的执行必须靠执行器,所以才有了 co 函数库,而 async 函数自带执行 器。也就是说,async 函数的执行,与普通函数一模一样,只要一行。(2)更好的语义。 async 和 await,比起星号和 yield,语义更清楚了。async 表示函数里有异步操作, await表示紧跟在后面的表达式需要等待结果。(3)更广的适用性。 co 函数库约定,yield 命令后面只能是 Thunk 函数或 Promise 对象,而 async 函数的 await 命令后面,可以跟 Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操 作)。
-
-
你接触过哪些数据库
-
mysql / mongodb
-
expressExpress 是一个简洁而灵活的 node.js Web应用框架, 提供了一系列强大特性帮助你创建各种 Web 应用,和丰富的 HTTP 工具。使用 Express 可以快速地搭建一个完整功能的网站。Express 框架核心特性: 可以设置中间件来响应 HTTP 请求。定义了路由表用于执行不同的 HTTP 请求动作。可以通过向模板传递参数来动态渲染 HTML 页面。
-
mongooseMongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具Mongoose是NodeJS的驱动,不能作为其他语言的驱动。Mongoose有两个特点:1、通过关系型数据库的思想来设计非关系型数据库2、基于mongodb驱动,简化操作
-
Vue
20. 虚拟DOM的引入?
多次真实DOM --》 字符串拼接的方式 --.> 虚拟DOM ( diff算法 )
虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作
虚拟的DOM的核心思想是:对复杂的文档DOM结构,提供一种方便的工具,进行最小化地DOM操作
-
三大框架的区别?
不同点:vue 控制器:无;过滤器 :无 ;指令:有;渲染指令: 有 ;数据绑定:双向;React 控制器:无;过滤器 :无 ;指令:无;渲染指令 : 无 ;数据绑定:单向;angular 控制器:有;过滤器 :有 ;指令:有;渲染指令 : 有 ;数据绑定:双向;相同点:都是操作虚拟DOM(真实的dom,转换js对象树)
React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站, 并于 2013年 5 月开源。React 拥有较高的性能,代码逻辑非常简单,
它有以下的特性:1.声明式设计:React采用声明范式,可以轻松描述应用。2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。3.灵活:React可以与已知的库或框架很好地配合。优点:1. 速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部 更新。2. 跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API, 甚至在IE8中都是没问题的。3. 模块化:为你程序编写独立的模块化UI组件,这样当某个或某些组件出现问题是,可以方 便地进行隔离。4 . 单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React 视图库的开发而被Facebook概念化。5. 同构、纯粹的javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript 的执行,预渲染你的应用有助于搜索引擎优化。6.兼容性好:比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应 用。它们使得那些艰难的任务不再让人望而生畏。缺点:React本身只是一个V而已,并不是一个完整的框架,所以如果是大型项目想要一套完整的框 架的话,基本都需要加上ReactRouter和Flux才能写大型应用。
Vue是尤雨溪编写的一个构建数据驱动的Web界面的库,准确来说不是一个框架,它聚焦在V(view)视图层。
它有以下的特性:1.轻量级的框架2.双向数据绑定3.指令4.插件化优点:1. 简单:官方文档很清晰,比 Angular 简单易学。2. 快速:异步批处理方式更新 DOM。3. 组合:用解耦的、可复用的组件组合你的应用程序。4. 紧凑:~18kb min+gzip,且无依赖。5. 强大:表达式 无需声明依赖的可推导属性 (computed properties)。6. 对模块友好:可以通过 NPM、Bower 或 Duo 安装,不强迫你所有的代码都遵循 Angular 的 各种规定,使用场景更加灵活。缺点:1. 新生儿:Vue.js是一个新的项目,没有angular那么成熟。2. 影响度不是很大:google了一下,有关于Vue.js多样性或者说丰富性少于其他一些有名的库。3. 不支持IE8
Angular是一款优秀的前端JS框架,
它有以下的特性:1.良好的应用程序结构2.双向数据绑定3.指令4.HTML模板5.可嵌入、注入和测试优点:1. 模板功能强大丰富,自带了极其丰富的angular指令。2. 是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依 赖注入等所有功能;3. 自定义指令,自定义指令后可以在项目中多次使用。4. ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代 码,对于敏捷开发的团队来说非常有帮助。5. angularjs是互联网巨人谷歌开发,这也意味着他有一个坚实的基础和社区支持。缺点:1. angular 入门很容易 但深入后概念很多, 学习中较难理解.2. 文档例子非常少, 官方的文档基本只写了api, 一个例子都没有, 很多时候具体怎么用都是 google来的, 或直接问misko,angular的作者.3. 对IE6/7 兼容不算特别好, 就是可以用jQuery自己手写代码解决一些.4. 指令的应用的最佳实践教程少, angular其实很灵活, 如果不看一些作者的使用原则,很容易写 出四不像的代码, 例如js中还是像jQuery的思想有很多dom操作.5. DI 依赖注入 如果代码压缩需要显示声明.
-
-
三大框架的使用场景?angular:angular功能比较强大,适用在复杂、重大项目中。它有自己的一套规则,写出来的项目结构比较清晰,便于大型项目的维护迭代。react:react是一套跨平台的js框架,对比angular,react较轻量,同时,react有一个明显的特点,也是angular的“痛点”——跨平台。就移动端来说吧,angular当时出来的时候并没有把移动端考虑在内,只是后来才意识到移动端庞大的需求,所以出来了angular2.0(angular2.0说白了就是angular专门针对移动市场的一种解决方案)。react使用js去调用移动原生控件,性能比传统的hybrid app(webview加载html页面)高很多,体验也更接近于native。vue:对比其他两大框架,vue是最轻量的,所以上手比较简单。vue专注于 MVVM 模型的ViewModel层,它主要目的是想让大家可以尽可能简单地达到数据和视图的绑定。如果你的产品需求是轻量级的、开发效率快的,那就选择它吧。
-
响应式原理响应式原理 vuejs中的模型(model)和视图(view)是保持同步的,在修改数据的时候会自动更新视图,这其实依赖于Object.defineProperty方法,所以vuejs不支持IE8及以下版本,vuejs通过劫持getter/setter方法来监听数据的变化,通过getter进行依赖收集,在数据变更执行setter的时候通知视图更新。
-
生命周期beforeCreate ,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作created ,一般可以在这里做初始数据的获取beforeMount , 一般可以在这里做初始数据的获取mounted , 可以在这里操作真实dom等事情…beforeUpdate , 一般不做什么事儿updated , 可以操作更新后的虚拟dombeforeDestroy ,一般在这里做一些善后工作,例如清除计时器、清除非指令绑定的事件等等destroyed ,在这里做善后工作也可以
-
vuex *********通过定义和隔离状态管理中的各种概念并强制遵守一定的规则,我们的代码将会变得更结构化且易维护。使用vuex来引入外部状态管理,将业务逻辑切分到组件外,可以避免重复的从服务端抓取数据。Vue组件接收交互行为,调用dispatch方法触发action相关处理,若页面状态需要改变,则调用commit方法提交mutation修改state,通过getters获取到state新值,重新渲染Vue Components,界面随之更新
-
vue的全家桶概括起来就是:、1.项目构建工具、2.路由、3.状态管理、4.http请求工具。
-
路由原理
通过改变浏览器地址URL,在不重新请求页面的情况下,更新页面视图
有两种方式:
1.一种是# hash , 在地址中加入#以欺骗浏览器,地址的改变是由于正在进行页内导航
2.一种是h5的history , 使用URL的Hash来模拟一个完整的URL-
spa 单页面应用?SPA不会因为用户的操作而进行页面的重新加载或跳转,而是利用JavaScript动态的变换HTML(采用的是div切换显示和隐藏),从而实现UI与用户的交互。好处:1、由于避免了页面的重新加载,SPA可以提供较为流畅的用户体验。得益于Ajax,可以实现无跳转刷新,由于与浏览器的history机制,可以使用hash的b变化从而可以实现推动界面变化。2、只要使用支持HTML5和CSS3的浏览器就可以执行复杂的SPA,因此,开发人员不必为了写SPA网站而特别学习另一个开发方式,而使用者也不额外安装软件,所以,让开发SPA网页程序的入门和使用门槛降低不少。缺点:以SPA方式开发的网站不容易管理也不够安全。因为没了一页一页的网页给搜索引擎的爬虫来爬,所以,在搜索引擎最佳化(SEO)的工作上,需要花费额外的功夫。因为没有换页,需要自定义状态来取代传统网页程序以网址来做判断。
-
前端的版本控制工具
-
git svn
-
git的操作流程1 . 组长: 创建一个远程的仓库2. 邀请各个组员,给赋予权限3. 给每一个组员创建一个分支,创建好公共的分支4. 克隆仓库到本地,多复制一份出来(这一份作为我们分支的开发目录), 有的同学直接在仓库代码中开发,代码提交的时候,代码丢失,5. 首先,当我们开发完之后,在开发目录中先做好测试,然后再去提交远程分支6. 组长: 统管项目
-
-
你的项目开发流程
-
产品<–> ui <–> 前端 <–> 后台<–>测试<–>上线
-
-
你平时是如何和你的ui和后台沟通的
-
都可以做的,成本大
-
后台接口没有给你( 跨域 json mock.js )
-
-
前端的工程化(自动化)
-
webpack什么是webpack:webpack是一款模块加载兼打包工具,它可以将js、jsx、coffee、样式sass、less,图片等作为模块来使用和处理。优点:1、以commonJS的形式来书写脚本,对AMD、CMD的支持也很全面,方便旧项目的迁移2、能被模块化的不止是JS了。3、能替代部分grunt/gulp的工作,例如打包,压缩混淆,图片转base64等。4、扩展性强,插件机制完善,支持React热拔插
-
gulpGlup侧重于前端开发的整个过程的控制管理,我们可以通过给glup配置不同的task来让glup实现不同的功能,从而构建整个前端开发流程。
-
grunt简而言之,就是运行在Node.js上面的任务管理器(task runner),其可以在任何语言和项目中自动化指定的任务
-
React
-
redux
-
redux-thunk当我们需要在actionCreator中返回一个函数的时候(异步操作的时候)
-
redux的工作流程组件想要获取State, 用ActionCreator创建了一个请求交给Store,Store借助Reducer确认了该State的状态,Reducer返回给Store一个结果,Store再把这个State转给组件。
-
生命周期初始化:getDefaultProps: 设置默认属性getInitialState: 设置初始状态, 此时可以访问this.propscomponentWillMount : 即将挂载 , 此时可以修改state。render : 渲染,就是挂载, 此时就不能更改state了。componentDidMount : 挂载完成更新:compoentwillReceiveProps: 组件初始化时不调用,组件接受新的props时调用。shouldCompnetUpdate: 是否应该进行更新操作componentWillUpdate: 即将进行更新操作, 此时可以修改staterender : 重新渲染componentDidUpdate: 更新完成, 此时可以获取dom节点。销毁:componentWillUnmount: 组件将要卸载时调用,一些事件监听和定时器需要在此时清除。
-
-
常见的ui组件库/ ui库
-
sui.js
-
element ui (vue)
-
muse ui (vue)
-
mini ui
-
framework7 vue
-
ant desigin (蚂蚁金服ui库)
-
-
rem 和弹性盒子
-
请问你使用过哪些 cs吗?
-
Client Serve 客服端服务器 wamp / xmapp / phpstudy …
-
-
后端测试工具
-
你在项目中遇到过什么问题?是如何解决的?
-
vue项目的时候,哪些地方卡住了?
-
react项目中 , 项目开发流程(日志文件) 问题 解决方案
-