自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(58)
  • 收藏
  • 关注

原创 git 指令

git clone 远程仓库地址 -b 分支名字 [文件夹名] ( [ ]表示可选 )git push origin --delete 分支名字。git config --global user.name "名字"重置不会产生新的记录id 产生的记录id和被重置的那个id是一样的。撤销某次操作的记录 被撤销的记录所发生的改变将不再发生。重置彻底回退到指定的commit版本 改commit后的所有commit都将被清除。git log --oneline 看到简化版的记录。

2024-08-22 22:18:41 385

原创 微信小程序 request请求 本地存储

增加:wx.setStorageSync(字符串键,任意类型的值)开发工具 右上角--详情--本地设置--不校验合法域名 打钩。会把当前程序所有的缓存清除。删除: wx.removeStorage(options)3.如果存储空间不足,会清空最近最近未使用的小程序的本地缓存(LRU)修改:wx.setStorageSync("键",值)查找: wx.getStorageSync("键")增加: wx.setStorage(options)修改: wx.setStorage(options)

2024-08-15 11:57:38 1128

原创 微信小程序 跳转方式 父子组件传参

1.在项目根目录创建components文件夹 用来存放所有的自定义组件2. 先创建组件文件夹 利用开发工具右键 新建component3.输入组件名回车 自动创建组件相关的四个文件4.组件的js最外层不是Page函数 而是Component函数内部的生命周期 跟页面组件是一样的 onLoad onShow onReady onHide onUnLoad5.组件的数据放到data里面 事件函数 放到methods里面6.在哪一个页面想要渲染改子组件 那么就在json文件里面引入。

2024-08-14 22:32:24 419

原创 微信小程序 for,if语法 事件对象,事件传参

小程序里面也有小胡子语法{{}},定义数据需要在js文件的data对象中定义小程序的js里面获取data数据的方式:this.data.变量名修改data里面的数据:this.setData({ 键1:值1...可以一次修改多个数据 })

2024-08-14 17:02:59 958 1

原创 vue3 依赖注入 vueRouter vuex

从vue中解构 inject方法 let变量 = inject("组先组件的变量名")通过变量.state,getters,commit,dispatch去获取vuex中的数据或方法。在setup里面 provide("后代组件传递的自定义函数名",驱动函数)组合式api需要先将useStore从vuex中解构出来引入, 定义变量等于解构出来的方法,有一个父组件,里头有子组件,有孙组件,有很多后代组件,共享父组件数据。变量的值就是组先组件传递过来的数据。通过定义的变量调用router里面的方法.

2024-08-13 17:03:32 373

原创 vue3 watch监听 父子组件通信

Child v-model:传过去的自定义变量名="传过去的变量名"></Child>别忘记 emits注册一下 emits:["update:父组件传过来的变量名"]3.在子组件的js的大括号里面 通过props注册传递过来的属性名。setup函数的第一个参数就是props 可以拿到父组件给子组件传递过去的数据。emit('update:父组件传过来的变量名','新值')1.watch(被监听的变量,(新值,旧值)=>{ })2.watch(被监听的变量,()=>{},{默认直接就是深层监听。

2024-07-30 20:19:23 439

原创 vue3 生命周期函数 ref函数 计算属性

2. let 取出的变量 = toRef(要取出数据的reactive对象,'取出的数据变量名')调用时里面传一个回调函数,回调函数的返回值就是当前计算数据的变量。vue3推出了setup函数,用作所有数据的初始化的函数,一切数据都定义到setup函数里面。toRefs函数可以把reactive里面的数据都拿出来,使用...扩展运算符来展开数据,在setup函数里面直接返回的数据 只能用作渲染 不能修改 因为没有双向数据绑定的效果。2.在setup函数里面 return 返回的数据里面需要包含这个数据。

2024-07-29 16:46:34 745

原创 vue脚手架 vuex模块化和四大辅助函数的结合使用

..mapActions('模块名',['该模块下的方法名']) 调用时: this.该模块下的方法名(传参)...mapGetters('模块名1',['该模块的变量1','该模块的变量2'....])...mapGetters('模块名2',['该模块的变量1','该模块的变量2'....])...mapState('模块名1',['该模块的变量1','该模块的变量2'....])...mapState('模块名2',['该模块的变量1','该模块的变量2'....])

2024-06-20 15:09:40 891

原创 vue脚手架 四大辅助函数和模块化

不管启用不启用命名空间功能 ,state和getters在使用的时候必须加模块名this.$store.state/getters.模块名.变量名不启用命名空间如果多个模块mutations和actions方法重名 调用时就会多个模块名方法一起调用, 一旦启用就需要通过this.$store.commit/dispatch('模块名/方法名')的方式启用。

2024-06-18 20:56:29 685 1

原创 vue脚手架 vuex的搭建和使用

actions里面定义的异步代码 不能直接修改state里面的变量 需要调用mutations方法修改state变量。调用actions方法: this.$store.dispatch('actions方法名',传入的参数)定义各种函数 用来修改state数据 每个函数有两个参数: state和传入要修改的数据的值。这里面定义的方法支持异步方法 如果只是单纯的同步方法建议写到mutations里面。state里面的变量必须调用mutations里面的方法进行修改。

2024-06-17 15:26:58 508

原创 vue脚手架 项目打包

publicPath:'./', 表示修改打包后默认的资源访问路径 默认的是/表示域名根路径。assetsDir:'', 打包后惊天资源存放的文件夹(css js)值为空字符串表示平铺。outputDir:'dist', 表示打包后输出的文件夹名称(默认就是dist)productionSourceMap:false, 打包后不生成.map文件。(这个map文件灭有太多的作用 只是辅助 会导致打包后的文件比较琐碎)然后在官网上面找自己想要的标签样式和效果 复制粘贴到你的文件中即可。

2024-06-17 09:59:31 436 1

原创 vue脚手架 axios的二次封装 组件缓存

baseURL:process.env.VUE_APP_BASE_URL(在src同级新建.env.development和.env.production这两个文件)这两个文件里面自定义变量名 VUE_APP开头的剩下的自定义 但是潜规则都是叫做VUE_APP_BASE_URL。实际开发中 路由的component除了首页需要加载的页面以外 其他页面组件的引入 必须使用懒加载的方式 这个是vue性能优化的重要手段之一。component:()=>import('页面组件的路径')

2024-06-17 09:38:48 1229

原创 vue脚手架 路由跳转,生命周期和动态路由

next 是一个函数 表示跳转的意思 不执行next不往下继续跳转。在其他页面向当前组件对应的页面跳转时 如果不执行next不让跳转。this.$route.params.path 配置冒号后面的变量 获取 动态路由传递过来的数据。如果不执行next 则表示当前路由的子路由发生跳转时不让跳转。from 表示当前从哪一个目标跳转的路由对象。replace方法跳转传参和push方法跳转传参的使用方式一样 区别是replace没有历史记录.传入的是路由的path。to 表示本次要跳转的目标路由对象。

2024-06-16 18:17:27 756

原创 vue脚手架 手动搭建vueRouter

this.$router.push('路由的name值') 比如有些路径/aa/bb/qq/ww/kk比较长 所以匹配name跳转更简单。name:''路由的name值 以后跳转方式其中一种是根据name跳转的 也算是当前路由的唯一标识。要想配置路由 必须先下载路由模块(正常是下载好的 我们在自己搭建项目的时候选择vue-Router的情况下就是下载好的)那么实际跳转时 /父路由的路径/子路由path路径 必须带上父路由的路径(推荐使用)this.$router.push('/路由对应的path地址')

2024-06-13 18:16:42 538

原创 vue脚手架 父组件与子组件之间传参

5.this.#emit('update:父组件传过来的变量名(也就是props里面注册的变量名)',修改的新值)在子组件中通过this.$parent 直接能够获取当前子组件所在的父组件对象。在父组件中 通过this.$refs.ref属性的值 直接获取子组件对象。并且可以直接操作子组件的data里面的数据或者methods里面的方法。3.在子组件的js的大括号里面 通过props注册传递过来的属性名。父组件与子组件之间实现双向数据绑定 是通过.sync(同步)事件修饰符实现的。

2024-06-06 16:37:28 722

原创 vue脚手架 组件

2 component组件有一个is属性 is属性等于哪一个子组件标签名 就会渲染哪一个子组件。一个组件在另一个组件的template里面渲染使用那么当前的这个组件就是子组件,外部的组件就是父组件。.native 事件穿透 把事件穿透到#child的标签上面 相当于父组件模板中给子组件的标签绑定事件。3.在想要引入该组件的vue文件中的script标签里面通过import引入这个子组件。因为子组件最终渲染成功以后 会把子组件的标签的内容替换并渲染成子组件。

2024-06-05 15:19:05 438

原创 vue脚手架环境搭建

Default (Vue 3 Preview) ([Vue 3] babel, eslint) 这个是vue3自带eslint的。Default ([Vue 2] babel, eslint) 这个是vue2的默认自带eslint。( ) Progressive Web App (PWA) Support 移动APP的支持(暂时不用)( ) TypeScript (微软推出的 目前比较流行的 跟js几乎一模一样的脚本语言)In package.json 当前项目的package.json里面。

2024-06-05 14:43:02 684

原创 vue基础 自定义指令 watch监听 vue动画

系统自带的指令功能不足的时候可以创建自定义指令和data同级的位置定义:不带v-的指令名称(当前指令所在的标签dom对象,指令对象){通过指令对象.value能够获取当前指令使用时传入的值Vue.directive('不带v-开头的指令名称',驱动函数)函数有两个参数 ele dir。

2024-06-03 09:32:42 336

原创 vue基础 计算属性 过滤器 双向数据绑定

vue挂载以后把所有内容手抄一份就叫做虚拟dom 假设你要操作dom 等一下先不要操作真实dom, 先修改我这个手抄的虚拟的DOM 改完了么?如果我们需要一个变量 这个变量的值是根据data里面某个值或者某几个值的变化而变化的时候,那么我们就需要用到vue里面的computed计算属性。data里面定义的数据无法直接互相访问 因为加载到data的时候还没有产生当前的vue对象。return 返回的结果就是当前计算属性的值。回调函数的参数就是过滤原本的值return 返回过滤的新值。

2024-05-30 21:04:01 1042

原创 vue基础 生命周期

created和mounted里面都可以 但是如果我们接口请求回来的数据需要操作dom一般都会放在mounted里面。如果有template那么vue去编译template里面的内容而el指向的位置里面的数据全部丢。vue对象.$nextTick(回调函数) 在回到函数里面可以操作dom 这个方法表示等到dom渲染完成再执行。如果没有定义template属性 那么就会把el的目标作为当前vue模板的页面进行渲染。一旦定义了template属性 那么template属性的值就作为vue的页面模板。

2024-05-28 17:37:12 1248

原创 vue基础 指令

标签 v-for =' (值,键,索引) in data里面的对象 '>{{值}},{{键}},{{索引}}{{元素}}{{索引}}{{值}},{{键}}{{值}}{{变量}}

2024-05-27 17:35:40 846

原创 html5 svg的使用

标签分组: 分组标签的使用:

2024-05-24 23:22:35 894

原创 html5 新增属性

ctx.arc(圆心x,圆心y,半径r,开始弧,结束弧,布尔值(方向:顺/逆) 可选)图片对象 从哪一个点开始截取 截取的宽高 在哪一个点开始画 画的宽。ctx.translate(x,y) 将canvas的0,0点平移到x,y位置。.strokeRect(x,y,width,height) 直接绘制一个空心矩形。ctx.fillText(str,x,y) 绘制实心字体 默认比上面黑一些。.fillRect(x,y,width,height) 直接绘制一个填充矩形。

2024-05-23 22:14:07 1993 2

原创 移动端开发 媒体查询和栅格系统

**使用媒体查询一定要注意选择器的权重值 最好每个媒体查询在原本的选择器的下面写***所以不同的父元素 em最终渲染的大小又不同 不方便控制。能够检测不同的媒体设备以及媒体类型和尺寸大小从而生效不同的出css代码。not(排除某些设备) only(只有某些设备) all(所有设备)在实例开发中页面的父元素众多 字体大小不尽相同。@media 媒体规则 媒体类型 and(媒体功能的尺寸){是按照当前父元素的字体大小来确定尺寸的。rem动态单位 是可以随着当前页面的字体大小调整而调整的。

2024-05-22 23:43:20 862

原创 移动端开发 flex布局

移动端包括:手机 平板 便携式设备目前主流的移动端开发:安卓设备IOS设备只要移动端支持浏览器 那么就可以使用浏览器开发移动端项目开发移动端 使用html+css+js在移动端 让同一个网页在不同设备适配 要充分利用屏幕空间宽度自适应:流式布局 百分比布局 伸缩布局单位: rem一套代码 跨设备运行web前端开发移动端的技术/框架2.vue.js3.微信小程序4.uniapp5.react6.angular。

2024-05-22 23:10:42 894

原创 css3 过渡 3D 动画

使用@font-face属性引入font-family:自定义字体名字;src:url(.ttf字体库文件的路径)将动画库中药添加的动画名字 以类名的形式写在标签元素上面就可以使用这个动画了。

2024-05-21 23:09:08 917

原创 css3 选择器

transform:rotateZ(deg角度);transform:rotateX(deg角度);transform:rotateY(deg角度);当前选择器选择到的所有元素中 在父元素中排行指定序号的元素 序号从1开始。transform:skew(x,y) 横纵向倾斜。transform:skew(deg角度):empty{} 当前选择器选择到的所有的元素中 元素内容为空时选中。如果当前元素在父元素中是独生子元素 则选择器生效。:enabled 元素可用状态的时候生效 只要针对表单元素。

2024-05-21 23:08:28 799

原创 ES6 async异步函数

一般后面需要跟一个promise对象 await会自动执行这个promise对象里面的代码。如果有多个await语句 那么只有上一个await执行完毕 才会执行下一个await。async整个函数都是异步的 一旦函数调用不会等待当前函数执行完毕再去执行后面的代码。await 后面如果写了有一个普通的表达式,那么直接执行意义不大(平常很少使用)而是先执行后面的语句 等到页面所有主程序执行完 再去执行异步函数里面的代码。es6推出了一种按照顺序执行的异步函数的方法 async 异步函数。

2024-05-21 23:08:24 569

原创 ES6 Promis语法

但凡有任意一个promise的状态是reject 那么promise.all最终的状态就是reject。如果这个promise是失败状态 那么会找下一个执行完正确的结果的promise为最终结果。如果结果是消极的(错误的) 调用reject(传入错误的结果)all方法的返回值是一个promise对象 这个对象的then方法 里面接收总的结果。这个方法可以快捷的诞生有一个状态为resolve的Promise对象。1.Promise.then(正确结果的回调函数,错误结果的回调函数)

2024-05-13 16:58:17 903

原创 ES6 set集合 map集合

根据元素内容删除元素: 集合名.delete('要删除的元素')判断是否拥有指定的元素: 集合名.has('要判断的元素')Set.prototype.entries():返回键值对的遍历器。Map.prototype.forEach():遍历 Map 的所有成员。symbol 类型是一种独一无二的类型 所有的symobol的值都是独一无二的。Map.prototype.entries():返回所有成员的遍历器。Set.prototype.keys(): 返回键名的遍历器。

2024-05-12 23:31:00 683

原创 ES6 概述

ECMA组织制定了js标准es6是js最大的语法糖语法糖: 又叫糖衣语法 又称 假语法在写法上有变更 写法更简单 易读 但是本质没有改变Babel编译器 就是能够将es6语法 编译成es5语法的一个程序 让es6语法兼容低版本的目前主流的浏览器 的最近两个版本 基本都支持es6语法 内置好了babel编译器。

2024-05-12 23:30:51 2252

原创 Ajax datatype属性

javascript object notation(js对象简谱) json整体就是字符串。json 返回的数据按照json代码解析。script 返回的数据按照js代码解析。text 把返回的数据按照普通文本解析。JSON.stringify(js对象)JSON.parse(JSON字符串)js对象 属性名加上双引号 属性值 字符串加双引号。xml 返回数据按照xml解析。如果是对象格式 最外层是大括号。如果是数组格式 最外层是中括号。多个键值对之间用逗号隔开。键值对之间用冒号隔开。

2024-05-10 15:02:02 447 1

原创 Ajax 五步骤

ajax对象.setRequestHeader("Content-type","application/x-www-form-urlencoded")ajax对象.setRequestHeader("Content-type","multipart/form-data")ajax对象.setRequestHeader("Content-type","application/json")ajax.open('请求方式','服务器地址?ajax对象.setRequestHeader("键","值");

2024-04-22 20:53:56 914

原创 php 概述

引号里面的名字是前端表单的name的值 不能瞎写。然后找到当前访问的域名对应的IP地址 然后再用IP地址 去找到一台计算机。2.关联数组: 键的内容自定义 值根据键存值和取值 (和js中对象的格式相似)在浏览器输入域名的时候 首先会先去访问远程的域名解析服务器。协议://域名或者ip:端口/路径1/路径2.../首页。$arr=array('刘备','关羽','张飞');获取数组长度的方法: count($arr)print_r($arr) //打印数组。$_POST['前段表单的name值']

2024-04-19 22:30:29 2137 1

原创 js高级 深拷贝 浅拷贝

函数名.call(函数内部this指向的新对象,实参1,实参2...)自调用函数可以传递参数 实参写在调用的括号里 形参写在function后面的括号里。等到定时器时间到了以后 此时页面早就加载完毕了 再去执行定时器的代码的时候。所以在自己的自调用函数前面加分号 分号再多也不会出现问题 就是结束的意思。但是里面的定时器是耗时任务 是异步任务 不会在页面加载的时候执行。不同的函数都有一个独立的作用域 所以可以解决命名冲突的问题。所以10个定时器用的是同一个i此时变成了10个10。

2024-04-18 21:29:34 293

原创 js高级 闭包

作用于所有代码执行的环境(整个script标签内部) 或者说一个独立的js文件 就是全局作用域。作用于函数内部的代码环境 就是局部作用域 (因为和函数有关系 所以有的时候也叫做函数作用域)就可以使用闭包 因为里层的函数用到了外层函数内的局部变量 里函数会返回外部。可以将对象2 里面的可枚举属性和自身的属性合并到对象1里面 返回合并后的对象。内部函数访问外部函数的变量 采取的是链式查找的方式来决定取哪个值 这种结构。如果属性有重复的 那么对象2中的属性值会覆盖对象1的属性值。

2024-04-18 19:53:16 585

原创 js高级 原型对象 原型链

原型对象里面的__proto__指向的是Object.prototype(object的实例化对象)如果我们修改了原型对象 给原型对象赋值了一个新对象的时候导致原来的constructor没有了。因为对象里面有一个系统自带的属性__proto__ 指向了构造函数的原型对象。在构造函数里有prototype属性 也叫做原型对象 共享的方法都放到原型对象里面。原型是一个对象 我们称prototype为原型对象(构造函数的一个属性)构造函数方法比较多的时候 往原型对象中添加 用对象的形式去写。

2024-04-18 16:20:07 871

原创 正则表达式笔记

1. var reg=/^\d[a-z]/ 表示数字开头 从第二个字符开始是a-z之间的任意字符。4. var reg=/^\w\d/ 表示长度是2 第一位是单词字符 第二位是数字字符。str.matchAll(/\d+[a-z]+/g) //返回迭代器对象。3.var reg=/^[abc]$/ 表示abc只能出现之一。

2024-04-16 23:52:51 948

原创 jq 动画

jq的预定义动画:1.显示隐藏动画显示 : jq对象.show()不传参数 表示直接显示 控制元素的 display属性传入毫秒值 表示 元素的width/height/opacity 从0变化到本身大小毫秒值表示多少毫秒变化完传入毫秒值,回调函数 显示动画执行完毕 触发的回调函数隐藏 : jq对象.hide()参数用法跟show一样切换: jq对象.toggle()参数用法跟show一样2.滑入滑出动画滑入动画 : jq对象.sildeDown()参数 传入毫秒值。

2024-04-10 22:12:04 786 1

原创 jq 选择器

点我显示十年生死两茫茫,喜羊羊,灰太狼。1十年生死两茫茫,喜羊羊,灰太狼。1十年生死两茫茫,喜羊羊,灰太狼。1十年生死两茫茫,喜羊羊,灰太狼。1

2024-04-07 21:05:29 745

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除