- 博客(28)
- 收藏
- 关注
原创 react高频题
、什么是虚拟DOM? 虚拟 DOM (VDOM)是真实 DOM 在内存中的表示。UI 的表示形式保存在内存中,并与实际的 DOM 同步。这是一个发生在渲染函数被调用和元素在屏幕上显示之间的步骤,整个过程被称为调和。2、虚拟DOM实现的原理?1)虚拟DOM本质上是JavaScript对象,是对真实DOM的抽象2)状态变更时,记录新树和旧树的差异3)最后把差异更新到真正的dom中3、类组件和函数组件之间的区别是啥? 类组件可以使用其他特性,如状态 state 和生命周期
2022-01-23 16:55:38 515
原创 vue+i18n+element 多语言切换
vue+i18n 切换多语言安装i18n 后引入创建文件en.jscn.jsindex.js切换的时候把值赋给 this.$i18n.locale 就可以切换成想要的语言最后{{$t('home')}} 就可以用了vue+i18n+elementUI安装elementUI 后引入en.js 和cn.js分别引入element-ui...
2019-12-06 17:49:04 751
原创 php+vue上传预览图片
预览图片 change(e){ let _this = this var files = e.target.files[0] let reader = new FileReader() reader.readAsDataURL(files) ...
2018-10-22 13:54:13 1147
原创 php 调用接口保存数据到数据库
<?php require "com.php"; $url="https://api.douban.com/v2/movie/in_theaters?count=15"; //接口 function getHTTPS($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, ...
2018-08-02 15:51:45 5187
原创 vue路由守卫未登录跳转到登陆页面
在路由里添加守卫可以在登陆页面添加created(){ if(sessionStorage.username){ //登陆了自动跳到首页,来阻止重复登陆 this.$router.push("/") } },const router= new Router({ mode:"history...
2018-08-02 15:46:50 5943
原创 vuex 用法
npm install vuex --save-dev新建个文件夹store,建js文件。import Vue from 'vue'import Vuex from 'vuex'Vue.use(Vuex)然后引入到main.js//stateconst state={ username:"hello"};import { mapState } from 'v...
2018-08-02 15:42:46 224
原创 php对数据库进行增、删、改、查
require "conn.php"; //引入数据库;header('Access-Control-Allow-Origin:*');//解决跨域跨域调用插入数据:$user=$_GET["username"]; $pwd=$_GET["pwd"];$sql="insert into reg (user,pwd,time)value('$user','$pwd',now())";...
2018-08-01 11:15:40 1210
原创 vue-cli项目引入bootstrap、jq
引入jq:输入 npm install jquery --save-dev 找到build文件夹下的webpack.base.conf.js文件打开,修改配置:var webpack=require('webpack');在module.exports里面加入:plugins: [ new webpack.ProvidePlugin({ $:"jquery", ...
2018-07-26 15:29:47 383
原创 vue生命周期
activated和deactivated配合keep-alive标签使用activated(实例被激活时使用),deactivated(实例没有被激活时)beforeCreate(创建前),created(创建后),beforeMount(载入前),mounted(载入后),beforeUpdate(更新前),updated(更新后),beforeDest...
2018-07-26 14:15:52 102
原创 vue全家桶安装axios及使用代理跨域
axios提供了一下几种请求方式axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.head(url[, config]) axios.post(url[, data[, config]]) axios.put(url[, data[, config]]) ax...
2018-07-26 13:48:42 664
原创 php连接数据库
<?php $conn=new mysqli('localhost','root','root','interface'); //数据库-地址,账号,密码(没有就为空),库名称 $conn->query('set names utf8');//设置数据库语言 if($conn->connect_error){ die("连接失败: " ...
2018-07-26 08:52:18 155
原创 es6新特性去重set() array.from()
数组 var arr=[1,2,3,2,3,4,5];var set =new Set(arr);Array.from(set);console.log(set)打印出
2018-07-24 11:19:39 3892
原创 call跟apply以及回调函数callback
apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性. Function.apply(obj,args)方法能接收两个参数obj:这个对象将代替Function类里this对象args:这个是数组,它将作为参数传给Function(args-->arguments) call:和apply的意思一样,只不过是参数列表不一样. Function.ca...
2018-07-24 11:08:52 1151
原创 h5本地存储
Web Storage分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了;而localStorage则一直将数据保存在客户端本地; 保存数据:localStorage.setItem(key,value); 读取数据:localStorage....
2018-07-24 11:08:32 1467
原创 jq插件制作
根据《jQuery高级编程》的描述,jQuery插件开发方式主要有三种:通过$.extend()来扩展jQuery 通过$.fn 向jQuery添加新的方法 通过$.widget()应用jQuery UI的部件工厂方式创建通常我们使用第二种方法来进行简单插件开发,说简单是相对于第三种方式。第三种方式是用来开发更高级jQuery部件的,该模式开发出来的部件带有很多jQuery内建的特性...
2018-07-24 11:08:14 1089
原创 js事件冒泡与事件委托
事件冒泡div里面有个按钮button,button添加个点击事件,点击按钮时会触发父级div;div也会执行同样的事件,这就是冒泡事件,逐级上升。事件捕获是从最外层到最内层,与冒泡事件最里层到最外层相反。让利用事件冒泡的原理,让自己的所触发的事件,让他的父元素代替执行!事件委托是利用事件的冒泡原理来实现的。绑定父级添加个事件,就可以让子级触发相同的事件,不用一个个的遍历,比较方便...
2018-07-24 11:07:48 221
原创 面向对象原型prototype
function tab(name,age){this.age=age;this.name=name;this.content=function(){//有点低效return this.name;}} tab.prototype.init=function(){//原型方法return this.age;} var tab=new tab("haha","18...
2018-07-24 11:07:31 166
原创 css 1像素的简单实现
在ipohne6中,1像素不做处理会变成2像素那么粗,虽然还是1像素,看起来是2像素的,主要是设备像素比,看了好多文章,用媒体查询什么的,其实很简单,用transforn:scaleY(0.5); transform-origin:0 0; 就可以变成1像素了 ...
2018-07-24 11:06:40 2177
原创 slice()截取方法substring()字符串截取substr()字符串截取
slice(start,end)方法start 从何处选取 开始值end 选到的位置,可以不填不会改变原数组,返回新的数组var arr=["slice(a,b)截取字符","split()切割字符串成数组","join()转换成字符串"];var c=arr.slice(1)console.log(c)打印["split()切割字符串成数组", "join()转换
2016-11-10 13:51:09 783
原创 数组去重和splice() 方法split()跟join()数组方法pop() push() unshift() shift()
数组去重var arr=['1','2','2','5','3','10','3','10','20','21'];var a=[];function array(arr){for(var i=0;iif(a.indexOf(arr[i])a.push(arr[i])}}return a;}array(arr)console.log(a)spli
2016-11-08 16:45:34 799
原创 js数组排序 reverse()和sort()方法的使用 复制数组slice()和克隆数组concat()
reverse() 方法在原数组,用于颠倒数组中元素的顺序。var arr=['1','2','5','3','10','20','21'];arr.reverse();console.log(arr)打印出["21", "20", "10", "3", "5", "2", "1"] 颠倒 ,没有进行排序sort()方法在原数组,用于对数组的元素进行排序。var
2016-11-08 15:33:13 764
原创 js正则表达式search() 搜索、replace()替换、match()方法exec()方法test() 方法split() 方法
search() 方法使用正则表达式使用正则表达式搜索,不区分大小写。i表示对大小写不敏感。var p="asdfghjkl";var sum=p.search(/j/i);console.log(sum)//打印出来的是6,说明搜索到具体下标//也可以搜索字符串 var p="asdfghjkl";var sum=p.search(/sd/i);conso
2016-11-07 14:44:17 3243
原创 js 添加 移除 替换 插入
添加、移除、替换、插入appendChild() //添加removeChild() //移除replaceChild() //替换insertBefore() //插入window.onload=function(){// var box=document.getElementById("box");//添加 appendChild() 先用createEle
2016-11-06 00:17:43 1044
原创 ajax jsonp跨域请求遍历
前端代码:$.ajax({ type:"get", url:"http://localhost/js.php", dataType: 'jsonp', jsonp:"callback", success:function(data){ alert(data.name); }, error:function(){
2016-10-10 10:47:13 416
原创 js拖拽面向对象
//关于 this问题指向,函数里面还有函数的话,必须要把第一个函数的this保存下来给第二个函数访问。window.onload=function(){var t=new drag("box")t.init();}function drag(name){this.div=document.getElementById(name);this.x;this.y;
2016-10-09 10:22:39 343
原创 js拖拽思想
拖拽。。。//定于个div;拖拽要用position:absolute 绝对定位var div=document.getElementsByClassName("box")[0]; div.onmousedown=function(e){var e=e||event;//这里主要为了把鼠标的位置定在div内//鼠标位置减去div的移量;得出鼠标出现在div的位置为x,y
2016-10-08 17:52:55 295
原创 js选项卡修改成面向对象
.display{display:block}div{display:none}var li=document.getElementsByTagName("li");var div=document.getElementsByTagName("div");cc(li,div); function cc(li,div){for(var i=0;il
2016-10-08 15:09:19 203
原创 js查找大小值
arr=[11,85,96,35,24,56,87,49,12,36];//定义个数组 var arrmax=Math.max.apply(Math,arr)//获取数组最大值var arrmin=Math.min.apply(Math,arr)//获取数组最小值//打印最大最小值console.log(arrmax)console.log(arrmin)
2016-10-08 14:59:47 158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人