什么是组件的生命周期 熟悉移动端开发的朋友对生命周期这个概念都不会陌生,如在Android、iOS、React、Vue中都会有生命周期这一概念,它定义了组件从初始化到被加载再到中间过渡态的状态改变直至被销毁整个一系列的存在过程。 Flutter 组件的生命周期及流转 Flutter组件有两类常用Widget,无状态的StatelessWidget和有状态的StatefulWidget。 无状态的 StatelessWidget 有状态的 StatefulWidget 在开发…
什么是组件的生命周期 熟悉移动端开发的朋友对生命周期这个概念都不会陌生,如在Android、iOS、React、Vue中都会有生命周期这一概念,它定义了组件从初始化到被加载再到中间过渡态的状态改变直至被销毁整个一系列的存在过程。 Flutter 组件的生命周期及流转 Flutter组件有两类常用Widget,无状态的StatelessWidget和有状态的StatefulWidget。 无状态的 StatelessWidget 有状态的 StatefulWidget 在开发…
在前文《flutter系列之开发环境搭建》中,已经介绍过了flutter环境的搭建,如果你的环境已经一切就绪,接下来本文将分享如何在模拟器中debug自己的应用。 我们总共分三步为大家介绍 第一步:启动模拟器, 第二步:安装你的应用到模拟器, 第三步:使用IDE调试flutter应用。 第一步: 启动模拟器 我们使用命令创建一个应用,例: flutter create flutter-study-demo, cd flutter-study-demo 进入应用目录。 查看设备: flutter emu…
前情概述 在经过flutter起步到入门过程中一番折腾,走过一些坑,积累了一些经验,所以我会把比较优雅的姿势总结出来分享给大家,如果有更好的姿势也可在留言区分享。各位同学请扶稳坐好,马上发车了。 开整 兵预善其器,必先利其器。再动手安装环境之前,先介绍一下flutter的sdk版本管理神器fvm,类似于node的版本管理工具nvm,很多时候我们开发过程中不同项目需要使用的flutter的sdk版本也不一样,多版本快速切换工具就显的非常必要,好了fvm就应运而生了。本文将给大家介绍fvm安装、使用;flutter安装…
背景概述 由于一个后台项目整合了多个系统,并且由多个团队共同维护,项目开发迭代排期及测试、上线的时间节点都不一样,并且后台项目前端代码都在一个git仓库,使得不同团队不同功能代码合并冲突不断并不易统一版本,开发测试也相互影响。其二,项目在同一个服务上代码体积变得越来越大,部署时间变慢。此外相同服务下的公共代码体积也会变大,进而会影响页面加载速度。因此非常有必要将前端微服务化,经过一系列调用及综合项目本身情况,采用微前端框架qiankun,拆分项目为多个微应用,解决上述项目中的痛点问题。 微前端如何解决上述项目中的痛…
问题场景: 在vue的v-for循环中使用的数组数据list中属性不是在data初始化声明的,而是在后端接口数据返回时动态添加的属性,此时在页面dom中绑定失效。 问题描述:在v-for循环中,如果我们在函数中改变了item中的值,在console.log()中查看是修改成功了,但在页面中没有及时刷新改变后的值。 解决方法:使用vue自带的 this.$forceUpdate() 迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。 …
CSS命名规范—BEM思想 BEM是什么: BEM是一种非常有用、功能强大、简单的CSS命名约定,它使您的前端代码更易于阅读和理解,易于使用,易于扩展,更健壮,更容易协作,更容易控制。 团队开发痛点: 在团队开发中,由于缺乏规范,样式管理一直是开发中的痛点,样式污染,难以定制化,依赖性高,各种问题层出不穷。 css的样式应用是全局性的,没有作用域可言。考虑以下场景 场景一:开发一个弹窗组件,在现有页面中测试都没问题,一段时间后,新需求新页面,该页面一打开这个弹窗组件,页面中样式都变样了,…
js异步编程的解决方案全解析 理解什么是同步和异步? Javascript语言的执行环境是"单线程"(single thread)。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。 这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代码长时间运行(比如死循环),导致整个页面卡在这个地方,其他任务无法…
1. 在vue中v-for和v-if不要放在同一个元素上使用。 由于 v-for 和 v-if 放在同一个元素上使用会带来一些性能上的影响. 官方给出的建议是在计算属性上过滤之后再进行遍历。 2. 动态加载组件。 在同一个页面中如果不需要立刻展示的组件,可以使用动态组件(动态组件主页面加载是不会加载,等到触发条件时才加载该组件,并且加载一次后就有缓存)。 3. 路由懒加载 当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才…
1.什么是WebSocket及原理 WebSocket是HTML5中新协议、新API。 WebSocket从满足基于Web的日益增长的实时通信需求应运而生,解决了客户端发起多个Http请求到服务器资源浏览器必须要在经过长时间的轮询问题,实现里多路复用,是全双工、双向、单套接字连接,在WebSocket协议下服务器和客户端可以同时发送信息。 原理: WebSocket 同 HTTP 一样也是应用层的协议,但是它是一种双向通信协议,是建立在 TCP 之上的。 2.理解各种协议和通信层、套接字的含义 IP:网络层协议;(…
create-react-app 创建项目,运行eject生成配置文件, 运行eject,暴露webpack配置,报错及产生的相关问题分享 1. npm run eject 运行eject命令报错处理方案: 主要问题是脚手架添加.gitgnore文件,但是却没有本地仓库 create-react-app project cd project git init git add . git commit -m "saving before ejecting" npm run eject **注: 此操作不可逆 2. 如…