FLEX

前端面试必备技巧

亡梦爱人 提交于 2020-05-03 17:32:28
2020最全的前端面试指南,一个多月 1.8w 字的面试经验积累,凭借它最终成功入职大厂…… 今年的金三银四刚好赶上疫情,很多大公司都停止招聘甚至裁员,想跳槽的小伙伴被打的措手不及。 需求减少要求肯定随之提高,谨以此面经献给在如此艰难之时逆风而动、勇敢坚强的你~ 前言 今年问的难度和深度应该比前几年有所增加,下面从总体分析和重要点两个维度来分析一下: 总体分析 前端问的最多的还是 js基础、计算机网络基础等,建议在此处多下功夫。 而 css 相关的很少问到,最多也就问个三栏布局、两栏布局、水平垂直居中,把前两节看了面试基本没啥问题。 框架 React/Vue 相关的在中小公司问的多一些,差不多占到面试时间的一半。而大厂不爱问框架,更注重基础,因为入职之后让你用哪个框架你就用哪个框架…即使问也是问比较底层的东西,比如 vue 的双向绑定原理。 重要点 最后再列举几个重要的点,无论大中小公司基本都会问的: 性能优化,以及每个优化点具体怎么做,每个点都可能延伸了问。 比如你说异步加载,面试官会追问异步加载的方法,deffer 和 async 的区别。 你说充分利用缓存,面试官会问缓存都有哪些方式,什么是强缓存什么是协商缓存,它们的返回码分别是什么,哪些资源存在 memory cache 哪些存在 disk cache… http/https/http2.0。三次握手四次挥手,https

CSS ,flex: 1的用处

戏子无情 提交于 2020-05-03 16:36:30
flex: 1;的妙用 首先 flex 是 flex-grow 、 flex-shrink 、 flex-basis 的缩写。 当 flex 取值为一个非负数字,则该数字为 flex-grow 值, flex-shrink 取 1, flex-basis 取 0%,如下两个是等同的: .item{flex: 1;} .item{ flex-grow: 1; flex-shrink: 1; flex-basis: 1;} 用途: 例如在表头有三个div被被应用到同一行后。但需要把第一个和第二个div排在最左边,第三个div需要排在最右边。可以直接给只给第二个div应用flex :1;(即把此行所有的剩余空间都给第二个div,第三个div自然就被挤到最右边了) 来源: oschina 链接: https://my.oschina.net/u/4353573/blog/4263106

django用户认证系统——重置密码7

二次信任 提交于 2020-05-02 10:47:32
当用户不小心忘记了密码时,网站需要提供让用户找回账户密码的功能。在示例项目中,我们将发送一封含有重置用户密码链接的邮件到用户注册时的邮箱,用户点击收到的链接就可以重置他的密码,下面是具体做法。 发送邮件设置 Django 内置了非常方便的发送邮件的功能,不过需要在 settings.py 中做一些简单配置。生产环境下通常需要使用真实的邮件发送服务器,配置步骤会比较多一点。不过 Django 为开发环境下发送邮件提供了一些方便的 Backends 来模拟真实邮件的发送,例如直接发送邮件到终端()。在 settings.py 中加入以下设置: settings . py EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 这样 Django 将把邮件发送到终端。 发送邮件设置好后,接下来的步骤和之前的登录,注册,修改密码等是完全类似的了,只需添加和修改相应模板即可。 编写重置密码模板 重置的视图函数默认渲染的模板名为 password_reset_form.html,因此首先在 registration/ 下新建一个 password_reset_form.html 文件,写入表单代码(几乎和登录页面一样),在此就不做过多解释了,具体请参考 Django 用户认证系统:登录 部分的说明。

.Net外包篇:我是如何看待外包的

时光怂恿深爱的人放手 提交于 2020-05-02 08:22:43
前言 从工作至今,我在工作之余大大小小接了六次外包,不多不少,虽然没有为我带来很大收益,但也让我开拓了人脉,接触了不少知识,锻炼了全栈开发能力。 菜鸟时代 第一家客户(成功) 我接的第一个外包是为一家装饰公司做的网站,是由前一家工作单位领导赵哥介绍的,所以我格外重视,这个客户后来得知是我的家乡地方的人。当时正一个XX CMS 版开源,是一款主要采用asp.net 2.0+jquery的开源CMS,支持sqlserver和access,用着很方便,当时access做企业站还是很流行的,现在怎么没怎么听过了。于是基于现成的后台,采用一些好看的网站模板改版了前端。这个网站客户用了四年。四年后的一天,还在联系我登录密码什么的,估计换新人了,不过我也没有备份,ftp登录密码我也忘了。后来再访问这个域名也访问不了,估计客户不续费了吧。 另外一个领导周兄也为我介绍了一个环境协会的。不过最终那个客户采用了阿里云的网站开发,阿里的毕竟更专业全面。 收获 那两位领导,是我毕业第一份工作的领导。通过这两个介绍,我们保持了联系,现在有事也可以直接联系。前两年我家卖苹果还帮我卖了几箱。当时周哥一直在做微信中控的问题,我们也相互交流了相关问题,但也有好多我也回答不上来。我想,如果没有这两份外包介绍,也许早就不联系了吧?另外离职的公司,哪有还联系的领导?感谢外包让我们依旧能保持联系,保持朋友般的关系。

【饿了么】—— Vue2.0高仿饿了么核心模块&移动端Web App项目爬坑(三)

你。 提交于 2020-05-02 00:28:46
前言: 接着 上一篇项目总结 ,这一篇 是学习过程记录的最后一篇,这里会梳理:评论组件、商家组件、优化、打包、相关资料链接。项目github地址: https://github.com/66Web/ljq_eleme ,欢迎Star。 ratings seller 一、评论组件-ratings 评论组件主要分为三块 评分信息-overview 评论选择-ratingselect 评论详细信息 评分信息部分 左侧评分 布局Dom < div class ="ratings-content" > < div class ="overview" > < div class ="overview-left" > < h1 class ="score" > {{seller.score}} </ h1 > < div class ="title" > 综合评分 </ div > < div class ="rank" > 高于周边商家{{seller.rankRate}}% </ div > </ div > < div class ="overview-right" > ..... </ div > </ div > < split ></ split > CSS样式 .overview display flex padding 18px 0 18px 18px .overview

Flexconnect部署

白昼怎懂夜的黑 提交于 2020-05-01 18:06:12
该记录主要用于针对于无线网络中Flexconnect的部署,可能涉及到的有Flexconnect中的组件,如何部署。(注意:在7.2版本以前,Flexconnect叫做HREAP),目前都称作为Flexconnect。 1、Flexconnect的架构如下 FlexConnect是分支机构和远程办公室部署的无线解决方案。使得客户能够集中控制和管理来自来自数据中心的AP流量;在每个分支机构分发客户端的数据流量;每个流量都以最有效的方式到达目的地。 集中AP控制流量优点:单一的监控和故障排查、容易管理、安全无缝的移动访问数据中心资源、减少分支机构物理占用面积、运营成本更节约。 分布Client流量的优点:生存能力(WLC或通往WLC的WAN链路down,无线不中断)、增加分支可扩展性。 Flexconnect还支持集中客户端数据流量,但是仅限于Guest数据流量, 下表描述了仅针对数据流量也在数据中心集中交换的非Guest Client的WLAN L2安全类型的限制。 L2 Security Support for Centrally Switched Non-Guest Users WLAN L2 Security Type Result None N/A Allowed WPA + WPA2 802.1x Allowed CCKM Allowed 802.1x + CCKM

vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法

有些话、适合烂在心里 提交于 2020-05-01 04:25:38
之前在记录扫码 在安卓时,会出现黑屏,错位,闪退等等问题。解决方法在另一篇文章里 https://www.cnblogs.com/huzhuhua/p/11064764.html 。 当时以为 是解决了。后来打包到IOS上时也是 出现。原因是 plus.webview.create(location.href)这个不是在新的窗口打开,都是在同一窗口。我也不知道什么 原因。 当时以为是路径问题,然后想到了换另一个地址试试。然后记录了另一篇vue引用多入口 文件 https://www.cnblogs.com/huzhuhua/p/11202565.html。 后来还是不行。最终只能新建一个静态的camera.html页面,放在dist打包的文件夹内。一块打包成APP。在调用上我是做了区分,安卓还是照上面 的文章做。IOS的话 就跳到camera.html。 具体代码如下。 要跳转去的VUE页面上 let ws = plus.webview.create( " ./camera.html " , " camera " ); ws.show(); ws.addEventListener( " loaded " , function() { // 页面加载完成后才显示 setTimeout(function() { ws.show(); }, 200 ); }, false ); ws

gowhere

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-30 14:55:22
489 import 'css/reset.css' reset.css html{ font-size:50px; } a{ text-decoration: none; } cnpm i fastclick -S main.js import FastClick from 'fastclick' FastClick.attach(document.body) iconfont font文件夹 .svg .eot .ttf .woff 修改引用路径 ![image-20200429144749585](/Users/zhixiong/Library/Application Support/typora-user-images/image-20200429144749585.png) import 'css/iconfont.css' 490 ![image-20200429154411032](/Users/zhixiong/Library/Application Support/typora-user-images/image-20200429154411032.png) App.vue <router-view> router.js import Home from '@/components/home/Home' routers:[ { path:'/', name:

微信小程序-获取地理位置

為{幸葍}努か 提交于 2020-04-30 13:44:50
推荐使用: wx.chooseLocation({ success: function (res) { console.log(res) // 获取位置 that.setData({ localPath: res.address}); }, }); 样图: 实现: wxml: < view class ="box" > < view class ="box_left" > 位置: </ view > < input type ="text" class ="box_right" placeholder ="请选择位置" bindtap ="getLocalPath" value ='{{localPath}}' ></ input > </ view > wxss: .box { width : 700rpx ; margin-top : 100rpx ; display : flex ; flex-direction : row ; justify-content : flex-start ; border-bottom : solid 2rpx #D7D7D7 ; } .box_left { width : 120rpx ; font-size : 15px ; color : #000000 ; } .box_right { width : 400rpx ; font

React Native之持久化存储(AsyncStorage、react-native-storage)的使用

扶醉桌前 提交于 2020-04-29 17:16:00
  AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。这是官网上对它的介绍。可以知道,这个asyncstorage也是以键值对的形式进行存储数据的。 1、封装DeviceStorage类 import { AsyncStorage }from 'react-native' ; export default class DeviceStorage{ static get(key) { return AsyncStorage.getItem(key).then((value) => { const jsonValue = JSON.parse(value); return jsonValue; }); } static save(key, value) { return AsyncStorage.setItem(key, JSON.stringify(value)); } static update(key, value) { return DeviceStorage.get(key).then((item) => { value = typeof value === 'string' ? value : Object.assign({}, item, value); return AsyncStorage.setItem