wumi_blog
wumi_blog copied to clipboard
for recording improvimg my experience
useState is async , use for re-render first You can pass a function to the useState hook to have your value lazily initialized. the pass function only run once ```tsx...
一些个面试题与js知识点
[转自前端进阶](https://yuchengkai.cn/docs/frontend/#%E5%86%85%E7%BD%AE%E7%B1%BB%E5%9E%8B) ### MS * ECMAScript中的所有**参数传递**的都是**值**,不可能通过引用传递参数。 被传递的值会被复制给一个局部变量(arguments) * js slice 与 splice * slice是指定在一个数组中的元素创建一个新的数组,即原数组不会变,slice需要两个参数,起点和终点。它会返回一个包含了从起点开始,到终点之前之间所有元素的新数组。 ```javascript var x = [14, 3, 77]; var y = x.slice(1, 2); console.log(x); // [14, 3, 77]...
### vue-router history > 启用 HTML5history模式利用 history.pushState() 和 history.replaceState() 来管理浏览历史记录。 > > 注意: 当使用 HTML5 history 模式时,服务器需要被正确配置 以防用户在直接访问链接时会遇到404页面。(把服务端路由设置为`/`和`/**`都匹配到index页面,前端去拦截 显示404等) 使用此模式url路径中不会有#或#! 服务端不做配置会导致后台路由not fond 所以后台路由应配置 **当匹配到相应前端路由时 返回 含有此前端路由``的页面** 渲染出此页面后,前端路由会展示相应视图 组件中 `this.$router` 是router对象...
js本页下载文件
### js下载文件 #### 思路 * 用 JavaScript 创建一个隐藏的 `` 标签 * 设置它的 `href` 属性 * 设置它的 `download` 属性 * 用 JavaScript 来触发这个它的 `click` 事件 ```javascript fetch('http://somehost/somefile.zip').then(res => res.blob().then(blob => {...
Vue
1. porps 与 v-bind 模板中属性值为动态的(vue组件类中的表达式 如 data属性中的值,props,methods,computed中的值等),要用v-bind绑定该属性 porps,组件标签上的属性, 此外 ~~模板里的标签中用到props的属性要用动态绑定使用`:属性名`~~好像标签中属性值是动态的属性名前都要有_:_来动态绑定 伪代码为 ``` javascript ``` ``` javascript //模板中 ... //类中属性 default export{ props:['name'] } ``` 2. events $emit (es6相关= =) >...
## 使用uniapp注意 ## 参考 - [小程序](https://developers.weixin.qq.com/miniprogram/dev/framework/) - [uniapp](https://developers.weixin.qq.com/miniprogram/dev/framework/) - [uni-ui](https://github.com/dcloudio/uni-ui) - [Vant Weapp commit id dbe94b3bfa886ad594b00831674691dff076e128](https://youzan.github.io/vant-weapp/#/quickstart#yin-ru-zu-jian) - [小程序 订阅消息](https://www.zhihu.com/question/52719661/answer/1119634588) `安全域名设置,在“设置” -> “开发设置”中设置request合法域名` ## 注意 - 基础库版本设置: 登录小程序管理后台,进入“设置->基本设置->基础库最低版本设置”进行配置。 - 引用小程序原生组件可在标签上使用`ref="some"`,用`this.$refs.some`来获取 -...
项目中同事写的,`scrollIntoViewIfNeeded`这个api还是头一次见,解决输入法遮挡问题还是很棒棒的 ```javascript function handler(event){ event.stopPropagation(); let target = event.target; let tagName = target.tagName.toLowerCase(); //只处理input和textarea if(tagName != 'input' && tagName != 'textarea') return; //input只处理text,tel,search,number,email if(tagName == 'input'){ let type = target.type;...
### 移动web页面弹性滚动 移动端ios fixed属性可能出现问题 [参考](http://www.cnblogs.com/PeunZhang/p/3553020.html) 在出现滚动条的div上加样式`-webkit-overflow-scrolling:touch;`,`overflow:auto;` iOS Safari应该是需要5.0。Android只在4.0以上支持。 CSS的属性-webkit-overflow-scrolling是真的创建了带有硬件加速的系统级控件,所以效率很高。但是这相对是耗更多内存的,最好在产生了非常大面积的overflow时才应用。 --- ### 移动端active伪类无效的解决方法 >active伪类在PC端的作用为鼠标点击到放开时给元素添加样式用,呈现目标被点击的激活状态.但是直接在移动端这么写会发现没有效果 需要: ```js document.body.addEventListener('touchstart', function (){}); //...空函数即可 ``` [参考](https://www.jianshu.com/p/a12f7610a135)
[HTML5使用 JavaScript File API 实现文件上传](http://blog.csdn.net/testcs_dn/article/details/8695532) [ [JS进阶] HTML5 之文件操作(file)](http://blog.csdn.net/oscar999/article/details/37499743/) [javascript 使用Html5 File Api进行文件读取](http://my.oschina.net/ososchina/blog/349497) 还是不太熟.. 通用模式,省的每次都得想下 ```javascript // 修改头像 async handleHeadImage (e) { let file = e.target.files[0] if (!file) return const...
简单的表单验证
- class 类相当于实例的原型,所有在类中定义的方法,都会被实例继承。如果在一个方法前,加上static关键字,就表示该方法不会被实例继承,而是直接通过类来调用,这就称为“静态方法”。 贴一个内部写的简单验证js ``` JavaScript import {$, isEmpty} from './tools' /** * 表单验证方法 */ export default class Valid { //需要加的属性,值为"false"或false时才无效 static attr = { //必填 required: "required", //最小长度 minlength:...