- 博客(38)
- 收藏
- 关注
原创 h5实现扫码二维码和识别相册二维码
newImage.setAttribute('crossOrigin', 'Anonymous') // url为外域时需要。const base641 = canvas.toDataURL('image/png', quality) // 压缩语句。this.error = 'ERROR: 安装摄像头不合适'// console.log('不支持的二维码')// this.$toast('不支持的二维码')result: '', // 扫码结果信息。error: '', // 错误信息。
2023-11-04 16:04:09
569
1
原创 nodejs2笔记
res.setHeader("Etag", etag(stats)):// 设置协商缓存,文件内容的唯一标识,etag模块的etag()方法可以生成stats文件的唯一标识。res.setHeader("Cache-Control", "max-age=3600, public")//设置强制缓存,HTTP 1.1(主流,优先级高)res.end(英文字符串/buffer) 返回响应:快速返回响应,对响应不做任何处理,直接返回,响应中文的话,客户端会出现乱码,因为客户端默认是以gb(国标)来解码。
2023-05-03 22:29:23
365
原创 nodejs1笔记
2.fs.write(fd, buffer,0,3,0, callback):用来写一个文件,fd文件标识,buffer,0,3,0,读取buffer0到3个字节放到目标文件 0的位置。3.fs.read(fd,buffer,0,3,0,callback):用来读一个文件,fd文件标识,buffer,0,3,0,读取文件0到3个字节放到buffer 0的位置。console.log(path.resolve(__dirname, '../../02.作业&笔记/笔记/git.md'));
2023-05-03 22:28:25
150
原创 mongod笔记
db.numbers.find().skip(10).limit(10):skip()用于跳过指定数量的数据,limit()设置显示数据的上限,MongoDB会自动调整skip和limit的位置,skip永远在前。db.emp.find({}).sort({sal:1,empno:-1}):可以用来指定文档的排序的规则,sort()需要传递一个对象来指定排序规则 1表示升序 -1表示降序(先sal,后empno)db.users.find({'hobby.movies':"hero"});
2023-05-03 22:28:24
114
原创 HTML笔记
对于第一种设置样式的方式来说,浏览器只需要找到页面中所有的 span 标签然后设置颜色,但是对于第二种设置样式的方式来说,浏览器首先需要找到所有的 span 标签,然后找到 span 标签上的 a 标签,浏览器是网页运行的平台,常见的浏览器有IE、火狐(fireFox),谷歌(chrome),safari,Opera(欧朋),第六类浏览器是Edge浏览器(是微软改进IE提供的内置浏览器)但是火狐最近没落了,比如打开速度慢,升级太频繁,猪一样的队友(flash),神一样的对手(chrome)
2023-05-03 22:27:08
58
原创 架构-webpack阶段笔记
publicPath可以看作是对生成目录`dist`设置的虚拟目录(可以当做就是dist目录),devServer首先从devServer.publicPath中取值,如果它没有设置,就取 `output.publicPath`的值作为虚拟目录,如果它也没有设置,就取默认值 `/`默认值是 ./src/index.js(./相对的目录是process.cwd(),就是运行的项目),但你可以通过在 webpack configuration 中配置 entry 属性,来指定一个(或多个)不同的入口起点。
2023-05-03 22:24:39
191
原创 架构-vue拖拽平台
5)右边属性配置内容来自editor-config.jsx文件中props和model,编辑好的属性传到editor-block.jsx文件的render(即editor-config.jsx文件中render)然后渲染组件即可。18.packages/editor-block.jsx文件中拿到组件配置属性,editor-config.jsx文件中render方法根据组件属性渲染组件,editor-operator.jsx中apply和reset操作组件属性。
2023-05-03 22:23:36
136
原创 架构-vue3笔记
1)组件首次调用执行effect的run方法,在run方法中收集每个属性和它依赖的effect,每个effect和它依赖的属性(在effect回调中取值时会走get方法,在get方法中调用track方法进行收集)4)执行runner.effect.stop()相当于执行effect上面的stop方法解除effect对应的属性上面的effect,这样属性改变对应的effect不执行。5.未知序列对比:根据新的节点 创造一个映射表 , 用老的列表去里面找有没有,如果有则复用,没有就删除。最后新的多余在追加,
2023-05-03 22:22:53
323
原创 架构-vue-a阶段笔记
3)在vdom/patch.js文件中createElm()和createComponent()方法,如果标签是组件,那么要返回组件的真实dom,组件的真实dom是通过组件init()方法挂在vnode.componentInstance.$el上。5)在vdom/patch.js文件中createElm()和createComponent()方法,如果标签是组件,那么要返回组件的真实dom,组件的真实dom是通过组件init()方法挂在vnode.componentInstance.$el上。
2023-05-02 22:13:54
240
原创 架构-reactnative笔记
renderSectionHeader={this.renderSectionHeader} // 渲染每组的数据有参数sectionData(组数据),sectionID(组id)renderRow={this.renderRow} // 渲染每行的数据有参数rowData(行数据),sectionID(组id),rowID(行id)onPress = {()=>{this.setState({selectedTabBarItem: 'home'})}} // 点击事件。== s2 // 相同组不渲染。
2023-05-02 22:12:48
86
原创 架构-react组件库笔记
2.button文件夹下添加Components.stories.mdx/Install.stories.mdx/Introduction.stories.mdx/button.stories.tsx文件。2)添加unit.jest.js文件,tests,e2e.jest.js,jest-puppeteer.config.js,button/unit,button/e2e文件夹。npm run test:unit//测试组件。2)添加gulpfile.js/tsconfig.json文件。
2023-05-02 22:12:15
81
原创 架构-react_ssr笔记
/renderRoutes会匹配app路由组件,app组件中renderRoutes会匹配app组件的子路由组件。1)在webpack.base.js和webpack.client.js和webpack.server.js文件中写打包服务端和客户端代码配置。// matchPath 是路由提供的工具方法,可以用来判断路径和路由对象是否匹配(不是简单的匹配:绝对相等)2.src/client/index.js写客户端代码。5) src/client/index.js返回打包js脚本。
2023-05-02 22:11:47
29
原创 架构-react阶段笔记
在react-dom.js文件的mountClassComponent()方法调用实例render()方法前调用getDerivedStateFromProps()生命周期,在Component.js文件shouldUpdate()方法shouldComponentUpdate()1)event.js文件中调用类实例setState()方法时将状态放在更新器pendingStates数组中,调用emitUpdate()/updateComponent()/forceUpdate()方法触发更新。
2023-05-02 22:11:45
137
原创 架构-碎知识点笔记
标记活的变量,标记完后清除死的变量,问题是清除后会出现内存不连续的情况,后面如果要放一个大的对象无法放到内存碎片空间中。用户在自己的网页上登录了,浏览器中已经存在了cookie,在诱导用户点入攻击者的网页来,在攻击者的网页上访问用户网站会在自动携带上cookie。新生代垃圾回收分为from和to两块区域,from里面放代码块,to里面为空,引擎会轮询from里面的变量,会把正在使用的变量。标记活的变量,然后把活的对象一起往左移到,死的对象往右移动,接着清除死的变量,不会造成内存碎片,但是操作时间久。
2023-05-02 22:11:04
29
原创 架构-前端项目自动部署笔记
5./usr/bin/java和/usr/java/jdk1.8.0_211/bin/java文件做个映射,访问/usr/bin/java就是访问/usr/java/jdk1.8.0_211/bin/java。5./usr/bin/java和/usr/java/jdk1.8.0_211/bin/java文件做个映射,访问/usr/bin/java就是访问/usr/java/jdk1.8.0_211/bin/java。3.remote derictory填上/usr/share/nginx/html。
2023-05-02 22:09:55
199
原创 架构-浏览器渲染原理及优化笔记
/ public username: string相当于在上面写上public username: string,在构造函数写上name: string。然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。//控制台输出如下命令 将circle.ts sumValue.ts app.ts文件打包成一个app.js文件输出。// mode的值只能是'development' 或 'production' 或 'none'// 可以添加任意多个,任意类型的属性。
2023-05-02 22:09:46
35
原创 typescript笔记
/ public username: string相当于在上面写上public username: string,在构造函数写上name: string。然而,没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。//控制台输出如下命令 将circle.ts sumValue.ts app.ts文件打包成一个app.js文件输出。// mode的值只能是'development' 或 'production' 或 'none'// 可以添加任意多个,任意类型的属性。
2023-05-02 22:08:46
81
原创 react笔记
render:(price)=><Button type="link">修改分类</Button> //统一设置列的内容,优先级比dataIndex高,有一个参数保留当行的数据(有设置dataIndex,就保留dataIndex设置的数据,没有设置dataIndex,就保留整行的数据)但是在React中,ES6类组件(类中的方法是添加在原型上的)方法中,除了 constructor/render 等函数以外,其他函数的this都是undefined。
2023-05-02 22:06:58
102
原创 vue3笔记
一般用来定义一个基本类型的响应式数据返回的是一个Ref对象,对象中有一个value属性,如果需要对数据进行操作,需要使用该Ref对象调用value属性的方式进行数据的操作。2.setup中的对象中的属性和data函数中的对象中的属性会合并为组件对象的属性,setup中的对象中的方法和methods对象中的方法会合并为组件对象的方法。新的option, 所有的组合API函数都在此使用, 只在初始化时执行一次,函数如果返回对象, 对象中的属性或方法, 模板中可以直接使用。
2023-05-01 21:55:17
112
原创 vue2-3笔记
当Vue中数据代理结束后,就开始数据劫持,通过observe()方法开始进行数据的劫持,判断data是一个对象后,创建劫持的实例对象,内部遍历vm的data对象,然后把vm的data对象中所有的数据一个一个添加到劫持对象的data对象上,当前在正式添加之前,创建dep对象(id,subs数组),2)Compile内部会把当前的Vue实例对象控制的容器对象中所有的节点全都存放在文档碎片对象中(文档碎片对象可以高效的批量操作DOM节点,在内存中进行节点的操作,这是所谓的虚拟DOM)
2023-05-01 21:54:23
117
原创 vue2-2笔记
router-link :to="{ name: 'about' ,params:{id:message.id}"></router-link> //对象。<router-link :to="{path:'/about',query:{id:message.id}}"></router-link> //对象。<router-link :to="{name:'about',query:{id:message.id}}"></router-link> //对象。
2023-05-01 21:52:54
54
原创 vue2-1笔记
响应式对象属性的改变会直接改变页面变化,data中初始化的属性或后面数组方法添加的属性就是响应式属性,后面通过.的方式添加的属性就不是,因为没有数据监听与劫持。Vue.$set(this.options,'trasemark',111):给响应式对象添加响应式属性,参数一响应式对象,参数二响应式属性,参数三响应式属性值。vm.$set(this.options,'trasemark',111):给响应式对象添加响应式属性,参数一响应式对象,参数二响应式属性,参数三响应式属性值。
2023-05-01 21:50:31
99
原创 js3笔记
CTX.arc(250,250,100,35*Math.PI/180,250*Math.PI/180,true):绘制一个圆形 6个参数,圆心的x 圆心的y 圆的半径 圆的起始角度(写成弧度) 圆的结束角度 顺时针还是逆时针(true代表逆时针 false代表顺时针)CTX.arcTo(250,100,250,150,50):绘制一段圆弧,并不是将某个角变成弧度 5个参数 ,分别是 起始位置坐标(拐角点坐标x,拐角点坐标x) 结束位置坐标(x,y) ,半径的长度。
2023-05-01 21:46:56
91
原创 js2笔记
insertBefore(newChild,oldChild):可以在已有的节点之前插入一个节点,newChild代表被插入的节点,oldChild代表指定插入节点的后边兄弟节点如果插入的是文档中已经有的节点,则把该节点先删除,然后插入新位置,该方法返回被插入的元素。oCon.appendChild(oBox):父级元素调用,可以向当前节点的子节点列表的末尾添加一个新的节点,如果插入的是文档中已经有的节点,则把该节点先删除,然后插入新位置。//浏览器窗口的视口(viewport)高度(以像素为单位);
2023-05-01 21:46:38
61
原创 js1笔记
3)arr.map(function (item,index,arr) { },{max:18})-映射数组:可以对数组进行迭代操作,第一个参数是一个回调函数,arr的值依次进入函数执行,每次返回一个值,第二个参数是回调函数的this指向。2)arr.forEach(function (item,index,array) {},{max:18}):可以对数组进行迭代操作,第一个参数是一个回调函数,arr的值依次进入函数执行,没有返回值,第二个参数是回调函数的this指向。当你创建了一个对象类型的时候,
2023-05-01 21:44:45
54
原创 echarts笔记
formatter:自定义拐点值,字符串:'{a}{b}{c}',a图表名称,b x轴值,c y轴值,函数:function(params){} params含有所有图形数据。模板变量有 {a}, {b},{c},{d},{e},分别表示系列名,数据名(x轴内容),数据值等。不同图表类型下的 {a},{b},{c},{d} 含义不一样。selectedMode:选中模式,表示是否支持多个选中,默认关闭,支持布尔值和字符串,字符串取值可选'single','multiple',分别表示单选还是多选。
2023-05-01 21:43:59
382
原创 css2笔记
z-index为负<background<border<块级元素<浮动元素<行内元素<没有设置z-index的定位元素<设置了z-index的元素。flex-wrap:控制项目超出容器后换行,换行以后,容器被平分成了两半,每一半占一边,换行以后每一行不影响,主轴和侧轴都出现了单行的富余空间。注意:左右定位时,需要给sticky的父元素设置display: flex;2)盒子模型的概念: 在html中,把每一个元素当做成一个盒子,拥有盒子的平面外形和空间盒子模型分为标准盒子模型和怪异盒子模型。
2023-05-01 21:43:05
94
原创 CSS1笔记
盒子模型分为标准盒子模型(box-sizing: content-box)和怪异盒子模型(box-sizing: border-box),标准盒子模型大小计算方法是 内容(width)+padding+border+margin。margin-right为负:元素不动,本身的大小也不会发生改变,但是,元素所占用的空间大小变小,后边的元素会覆盖上来。margin-bottom为负:元素不动,本身的大小也不会发生改变,但是,元素所占用的空间大小变小,下边的元素会覆盖上来。
2023-05-01 21:41:38
70
原创 ajax_axios笔记
/ .get("http://localhost:3000/posts", { params: { id: 1 } }) // 代表找id=1的所有数据。axios.get("http://localhost:3000/posts", { params: { id: 1 } }):代表找id=1的所有数据(数组)axios.delete("http://localhost:3000/posts/2")//删除id为2的数据,删除了数据,但是id保留下来了。
2023-04-30 21:48:31
62
原创 移动端笔记
identifier | `此 Touch 对象的唯一标识符`. 一次触摸动作(我们指的是手指的触摸)在平面上移动的整个过程中, 该标识符不变. 可以根据它来判断跟踪的是否是同一次触摸过程. **只读属性.** || pageX | 触点相对于HTML文档左边沿的的X坐标. `当存在水平``滚动的``偏移时, 这个值包含了水平滚动的偏移`. **只读属性.** |//让根元素的字号大小等于屏幕的宽度,那么屏幕的总宽度就是1rem。ios上的Safari浏览器也是无效的。
2023-04-30 21:47:09
72
原创 项目构建工具笔记
以 webpack 的开发环境运行,处理 ./src/js/index.js 文件(index.js所依赖的模块也会自动被处理),输出到 ./dist/js/index.js。以 webpack 的生产环境运行,处理 ./src/js/index.js 文件(index.js所依赖的模块也会自动被处理),输出到 ./dist/js/index.js。filename: "static/js/build.js", // 输出文件名,如果是[name].js.那么默认输出文件名为main.js。
2023-04-30 21:45:56
26
原创 项目构建工具笔记
以 webpack 的开发环境运行,处理 ./src/js/index.js 文件(index.js所依赖的模块也会自动被处理),输出到 ./dist/js/index.js。以 webpack 的生产环境运行,处理 ./src/js/index.js 文件(index.js所依赖的模块也会自动被处理),输出到 ./dist/js/index.js。filename: "static/js/build.js", // 输出文件名,如果是[name].js.那么默认输出文件名为main.js。
2023-04-30 21:43:12
196
原创 响应式笔记
orientation | portrait 或 landscape | 设备处于横屏(宽度大于高度)模式还是竖屏(高度大于宽度)模式 || width | 长度数值,如600px | 输出设备渲染区域(如可视区域的宽度或打印机纸盒的宽度)的宽度 || height | 长度数值,如600px | 输出设备渲染区域(如可视区域的高度或打印机纸盒的高度)的高度 |/* 比较小的设备(竖屏的平板,屏幕较大的手机等, 大于 600px) */
2023-04-30 21:41:18
31
原创 碎知识点笔记
call():[].forEach.call(obj,function(){},num):第一个参数是改变函数的调用者(函数的this指向也改变),第二、三...个参数放着函数的参数,函数会直接调用。apply():[].forEach.apply(obj,[function(){}]):第一个参数是改变函数的调用者(函数的this指向也改变),第二个参数是数组放着函数的参数,函数会直接调用。窗口的调用,页面的滚动,DOM的元素的拖拽(mounsemove),疯狂的抢购(mounsedown)
2023-04-30 21:40:36
28
原创 碎业务笔记
el-form-item label="内容详情" label-width="145px" prop="content">box-none 发生在本组件显示范围内,但不是子组件显示范围内的事件交给本组件,在子组件显示范围内交给子组件处理。box-only 发生在本组件显示范围内的触摸事件将全部由本组件处理,即使触摸事件发生在本组件的子组件显示范围内。none 发生在本组件与本组件的子组件上的触摸事件都会交给本组件的父组件处理.a.target = '_blank' // 针对 ie模式 的浏览器。
2023-04-30 21:39:53
70
1
原创 模块化笔记
2.定义暴露模块(导出变量和函数):module.exports和exports是引用关系,module.exports={}/exports=module.exports。* 使用Browserify编译js : browserify js/libs/main.js -o js/libs/bundle.js。1.引入其他的模块:(核心模块和自定义模块同时引入,核心模块放在前面,可以省略.js后缀名)seajs.use('./js/modules/main')// 必须./开头 参考index路径。
2023-04-30 21:38:31
73
原创 大型项目前端架构
SEO:仁者见仁智者见智,虽然很多公司已经不做了,但通常认为,还是有一定意义的(特别是需要搜索引擎引流的时候),因此React或者Vue的同构是必须的。灰度发布是大型项目在发布时的常见方法,指在发布版本时,初始情况下,只允许小比例(比如1~5%比例的用户使用),若出现问题时,可以快速回滚使用老版本,适用于主链路和访问量极大的页面。3)定性和定量:架构里设计的内容,一定要有是可衡量的意义的,最好是可以定量的——即可以衡量带来的收益或减少的成本,至少是可以定性的——即虽然无法用数字阐述收益,
2023-04-30 21:38:23
383
1
原创 版本控制工具笔记
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,创建成功会提示 Initialized empty Git repository in c:/Users/熊键/Desktop/0725git/.git/由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送到远程新的master分支,
2023-04-30 21:37:33
146
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人