前言 接上文:谈谈我对前端组件化中“组件”的理解,顺带写个Vue与React的demo 上次写完博客后,有朋友反应第一内容有点深,看着迷迷糊糊:第二是感觉没什么使用场景,太过业务化,还不如直接写Vue&react的源码分析,我感觉这里有必要说下我的认识. 首先,要写源码分析很难,第一是他本来就很难,所以一般我们是想了解他实现的思路而不是代码: 第二每个开发者有自己发风格,所以你要彻底读懂一个人的代码不容易,除非你是带着当时作者同样的问题不断的寻找解决方案,不断的重构,才可能理解用户的意图. 我们…
前端流行框架大比拼 angular vue react ant-design angularjs angular是个MVVM的框架.针对的是MVVM这整个事.angular的最主要的场景就是单页应用,或是有大量数据绑定的情况. 特性 双向数据绑定 ioc依赖注入 指令 上面这几点用起来确实很爽,随便指定个区域,配一个controller,然后里面的东西就都在scrope里了,确实很方便 如果各位想看,参见 https://github.com/i5ting/ionic_ninja/blob/ma…
DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师.官方网站:devui.designNg组件库:ng-devui(欢迎Star) 引言 "他在正午.黄昏,在一天里的许多时刻去感受它.记录它,结果也就让我们看到了那么多的不同.他描绘它的角度没变,但它的面目却极大地改变了." 19世纪著名的印象派画家莫奈,喜欢对着同一处景物,分别画出对象在不同时间,不同光线下的色彩变化. 比如不同季节的三株白杨: 比如一天中不…
前端开发组件化设计vue,react,angular原则漫谈 https://www.toutiao.com/a6346443500179505410/?tt_from=weixin&utm_campaign=client_share&timestamp=1514779019&app=news_article&utm_source=weixin&iid=22236281427&utm_medium=toutiao_android&wxshare_co…
一.Angular 1.MVVM(Model)(View)(View-model): 2.模块化(Module)控制器(Contoller)依赖注入: 3.双向数据绑定:界面的操作能实时反映到数据,数据的变更能实时展现到界面: 4.指令(ng-click ng-model ng-href ng-src ng-if...): 5.服务Service($compile $filter $interval $timeout $http...). 备注: (1) api比较全,功能比较完善.关于数据绑定…
谈谈Vue/React中的虚拟DOM(vDOM)与Key值 一.DocumentFragment 在了解虚拟DOM前,先来了解DOM的一个对象属性--DocumentFragment. 在一次操作中,需要频繁操作DOM时,就可以先将要改变的节点附在DocumentFragment上,之后再将该对象渲染到DOM中,改方法只对DOM进行了一次操作,可以显著提高性能. 但是该方法只适用于局部操作,而在真实的项目中,需要的不仅仅是DocumentFragment,于是就有了虚拟DOM的产生 紧接着,对于…
框架中的 CSS Angular Vue React 三大框架 Angular Vue 内置样式集成 React 一些业界实践 Angular Angular . js (1.x):没有样式集成能力 Angular (2+):提供了样式封装能力  2.与组件深度集成 ShadowDOM(谈一谈神奇的ShadowDOM):1.逻辑上一个DOM  2.结构上存在子集结构 Scoped CSS (Scoped CSS规范):1.限定了范围的CSS 2.无法影响外部元素 3.外部样式一般不影响内部 4.…
双十一剁手节过去了,大家应该在很多网页中看到了数字翻牌的效果吧,比如倒计时. 数字增长等.相信很多人都已经自己独立实现过了,我也在网上看了一些demo,发现HTML结构大多比较复杂,用了4个并列的标签来放置前后两个“牌”.本文就来讲解下,如何进一步精简HTML,让结构简单,让JS方法封装得易使用.先来看看最终效果: 每个翻牌的HTML结构(精简至2个并列标签): <div class="flip down"> <div class="digital fron…
前端,HTML(超文本标记语言),CSS(层叠样式表)和JavaScript(脚本语言) HTML,通常说的h5,其实按标准来说,HTML4的后续版本不带编号了,并保证向前的兼容性 CSS的版本3,增加了translate(),能完成以前一定需要js才能做到的动画,同时增加了flex弹性盒子(响应式设计,提供一种更加有效的方式来对一个容器中的子元素进行排列.对齐和分配空白空间,以往使用float) 前端框架 一.Bootstrap 在Bootstrap的官网介绍中,Bootstrap is th…
uni-app,vue,react,Trao之缓存类封装 一,介绍与需求 1.1,介绍 缓存主要分为如下几个 1.LocalStorage LocalStorage是永久性的本地缓存,存储在客户端的浏览器上,除非主动删除,是不会过期的.LocalStorage采用的是键值对的方式进行存储,存储方式只能是字符串.存储内容可以用图片.json.样式.脚本等. API基本使用方法: 1.1.localStorage.setItem() 存储 1.2.localStorage.getItem() 获取数…
常用的到的网站 vue学习库: https://github.com/vuejs/awesome-vue#carousel (json数据的格式化,提高本地测试的效率) json在线编辑: http://www.bejson.com/http://www.kjson.com/ //提供fake的数据:http://jsonplaceholder.typicode.com/users /posts 100 posts/comments 500 comments/albums 100 albums/…
大体介绍 本文对github actions部署前端项目做一个简单的总结,总体来说,我感觉用它想要部署一个前端项目,可以说非常简单,简单得令人震惊…
引言 前进刷新,后退不刷新,是一个类似app页面的特点,要在单页web应用中做后退不刷新,却并非一件易事. 为什么麻烦 spa的渲染原理(以vue为例):url的更改触发onHashChange/pushState/popState/replaceState,通过url中的pathName去匹配路由中定义的组件,加载进来并实例化渲染在项目的出口router-view中. 换言之,一个实例的解析渲染意味着另外一个实例的销毁,因为渲染出口只有一个. keep-alive为什么不行?因为keep-al…
转自<奇舞周刊>,好文章mark一下 分割线 一个有趣的事实是:IBM发表的2017年最值得学习的编程语言名单中,JavaScript榜上有名.这位IT巨头指出,JS在网站中惊人地达到94.4%的使用率,而且"不太可能降低".JavaScript能确保"对用户非常友好的网页,因为它负责整个web界面,包括动画和交互".不管你怎么看,JavaScript很重要. 这也为潜在的Web开发人员指明了方向:如果你深入前端,你不得不在某些时刻面对JavaScrip…
最近我的朋友王小闰参加了一场面试,在他填写简历表的时候,排在他前面的应聘者正在旁边邻桌接受来自面试官的检验. 王小闰边写边想,这不就是一会儿要面试自己的前端leader么,现在面试官提问的一些面试题会不会就是待会儿要问自己的问题? 想到这,我朋友王小闰不自觉地竖起了耳朵听,借鉴下别人回答问题的经验,保不齐自己一会儿要套用一下. 不听不知道,一听吓一跳.没准备好的面试,那叫一个尬聊. 首先,面试开场白总缺少不了自我介绍,一方面是面试官想听听你对自己的介绍,顺便有时间看看简历上的描述,是否与口述一致…
父子通信 父传子 vue: 父组件:<child :msg="datamsg" ></child> //子组件的msg属性上加数据,datamsg是数据 子组件:export default { props:["datamsg"] //子组件得到的数据,保存在props中 } html: <p>{{msg}}</p> //在组件的html页面进行渲染 将父组件中的数据以属性形式放在父组件里面的子组件上,然后子组件再在v…
基本语法 样式处理: vue: 动态属性: v-bind:class 简写 :class react: 变量:class={selecter} angular: 指令:[ngClass]="first second" & [ngClass]="['first','second']" & [ngClass]="{'first':true}" 都可以写成字符串.数组.对象格式,angular还可以写成正则格式. angular的表单指…
基本语法: 1.双向数据绑定 vue 指令:v-model="msg" react constructor(){ this.state{ msg:"双向数据绑定" } render(){ <input type="text" value={this.state.msg} onChange={(ev)=>this.handleChange(ev)} />{msg} } handleChange(ev){ this.setState…
基本语法: 动态属性: vue: v-bind:attr="msg" :attr="msg" react: attr={msg} angular [attr]="msg" 事件绑定: vue: v-on:click="handleChange($event)" @click="handleChange" react //第一种方法 constructor(){ this.handleChange=this.…
基本语法: 1.插值表达式: vue:{{}} react:{} angular:{{}} 2.渲染数据 vue js: export default{ data(){ return{ msg:"我是数据" } } } html: <p>{{msg}}</p> react js: this.state={ msg:"我是数据" } html: <p>{this.state.msg}</p> angular ts: ex…
首先,我们先了解什么是MVX框架模式? MVX框架模式:MVC+MVP+MVVM 1.MVC:Model(模型)+View(视图)+controller(控制器),主要是基于分层的目的,让彼此的职责分开. View通过Controller来和Model联系,Controller是View和Model的协调者,View和Model不直接联系,基本联系都是单向的. 用户User通过控制器Controller来操作模板Model从而达到视图View的变化. 2.MVP:是从MVC模式演变而来的,都是通…
Vue 包含一组观察数组的变异方法,所以它们也将会触发视图更新.这些方法如下: push() pop() shift() unshift() splice() sort() reverse() 问题描述:在tap栏下,给每个tab添加一行数据,默认行就可以一直添加,切换到1号的tab添加时,数组已经添加成功,但是视图就是没有变化,来回切换才手动更新 分析:由于 JavaScript 的限制,Vue 不能检测以下变动的数组 解决:使用了_this.$set(item, 'answers', Tmp…
2017-08-04 前端大全 (点击上方公众号,可快速关注) 英文:ANTONI ZOLCIAK  译文:众成翻译 www.zcfy.cc/article/vue-react-angularjs-and-angular2-our-take-on-popular-javascript-frameworks-3668.html 如有好文章投稿,请点击 → 这里了解详情 一个有趣的事实是:IBM发表的2017年最值得学习的编程语言名单中,JavaScript榜上有名.这位IT巨头指出,JS在网站中惊…
一.起因:项目使用VUE,和react.构建单页面应用.在nginx的环境下只有一个index.html入口.这时候默认能够访问到vue,和react 路由 配置中的首页.内部连接也能够跳转但是不能给刷新也面.刷新页面后就为变为404页面. 二.原因:nginx 在解析路径的时候:比如: localhost/a     这个路由.其实nginx 在解析路径 时候.为去root根路径下去找a文件.但是找不到.所有就会报错. 但是在单页面应用中localhost/a 其实是 VUE, 和react…
1.数据绑定 1)vue 把一个普通对象传给Vued的data选项,Vue会遍历此对象的所有属性,并使用Object.defineProperty将这些属性全部转为getter/setter.Object.defineProperty为ES5的新属性,无法模仿,所以vue不支持IE8以及更低版本浏览器的原因.用户看不到getter和setter但是vue内部做了追踪依赖,在属性被访问和修改时通知变化.每个组件都有一个watcher对象,他会在组件渲染的过程中把属性记录为依赖,之后当该属性的set…
github github-myBlob 从输入URL到页面加载完成的整个过程 首先做 DNS 查询,如果这一步做了智能 DNS 解析的话,会提供访问速度最快的 IP 地址回来 接下来是 TCP 握手,应用层会下发数据给传输层,这里 TCP 协议会指明两端的端口号,然后下发给网络层.网络层中的 IP 协议会确定 IP 地址,并且指示了数据传输中如何跳转路由器.然后包会再被封装到数据链路层的数据帧结构中,最后就是物理层面的传输了 TCP 握手结束后会进行 TLS 握手,然后就开始正式的传输数据(如…
题目: vue代码 <template> <div class="colculate"> <div> <select v-model="num1" placeholder="数字1"> <option v-for="item in numLimitList" :key="item" :label="item" :value="…
前端开发现在已经从传统的后端web多页面开发模式转向前端单页SPA开发模式,而vuejs/react/angular则是开发SPA非常优秀的前端框架.组件化开发由react最早提出,vuejs后发优势,将组件化开发贯彻到了极致.虽然spa开发由于组件式开发带来的组件重用,可维护,可扩展非常好,但是css样式的管理一直是一个令前端团队头疼的问题,特别是当页面越来越复杂,并且有多个SPA页面时如何能够让样式重用,并且可维护,可扩展并没有一个特别有效和被验证过的普适方案.本文试图总结一些css模块化在…
vue单页因微信分享和自动登录需要,对于URL中存在’#’的地址,处理起来比较坑.用history模式就不会存在这样的问题.但是换成history模式,就会有个新的问题,就是页面刷新后,页面就无法显示了(404).对于这个问题,我们只需要在服务器配置如果URL匹配不到任何静态资源,就跳转到默认的index.html. 我这里是针对nginx的配置,总结如下:方案一 (这种方式容易被第三方劫持) location /{ root /data/nginx/html; index index.html…