- 博客(47)
- 收藏
- 关注
原创 结构体struct,结构体数组,结构体指针
3、使用typedef : stu 就是 struct Student类型的。1、定义结构体变量后对每个成员分别赋值。也可以在声明结构体时就定义结构体变量。2、定义结构体变量时就直接赋值。6、指向结构体数组 的指针。4、指向结构体变量的指针。
2022-10-16 16:48:28
284
原创 javascript继承
还是有缺点:当进行修复子类构造函数的指向Child.prototype.constructor = Child;优点:共享原型对象上的方法,方法定义在父类原型上,复用父类构造函数方法,如say方法。缺:方法不能复用,独立的(各实例不能通过父原型上的方法进行复用)。parent一般将属性封装在构造函数中,将方法定义在原型对象上。不能继承父类原型上的方法,如下例的fun方法。优:可向父类构造函数传参,不共享引用属性。父类实例的构造函数指向也会跟着变。,会存在一份多余的父类实例属性。比如下例子的arr属性。...
2022-08-15 17:23:40
215
原创 Vue 父子组件传值sync修饰符
子组件通过props自定义属性接受父组件传过来的值,只读但不能直接修改数据,再通过emit自定义事件修改父组件的数据。v-bind中。
2022-08-07 17:29:27
611
原创 动态表单配置select
1、通过el-form-item v-for=“(formName, index) in dynamicForm.formNames”遍历多个动态表单,数据项:默认的下拉框属性值:遍历的option是用计算属性el-option v-for=“item in filterOptions[index]”添加表单:实现添加表单实现删除表单:随意的提交全部代码:...
2022-07-13 17:48:53
589
原创 Vue的render函数
父组件:App,子组件:Testapp.vue中Test.vue组件 是使用template模板2.使用render函数当不使用template模板,直接使用render函数,实现了同样的效果。所以:实际上template 在Vue内部最终也会编译成render函数3.第一个参数1.动态创建标签第一个参数 标签/组件名 也可以由父组件传来,也就是render函数实现了动态创建标签:App.vue中传来tag=“h5”在Test.vue中定义props,实现了渲染’hello,我是
2022-07-13 17:45:20
2857
原创 Mobx--store状态管理工具
安装counter.Store.jsreact组件App.js中使用:2、含有计算属性counter.Store.jsreact组件App.js中使用:3、模块化使用useContext机制导出。模块counter.Store.js:模块list.Store.js组合子模块index.jsreact组件App.js中使用:.........
2022-06-30 17:33:49
909
原创 配置@路径简化路径处理
craco.config.js:3、修改 package.json 中的脚本命令。package.json中的"scripts":全覆盖了在代码中,就可以通过 @ 来表示 src 目录的绝对路径。
2022-06-30 11:24:19
459
原创 组件间通信
react:vue:2、子组件向父组件传数据react还没解决好vue:3、兄弟之间传值react:4、跨组件通信Contextreact:
2022-06-29 23:28:55
93
原创 Hooks在函数组件中使用useState、useEffect、useRef、useContext
只能在函数组件中,[数据data,修改数据方法setData ]----固定形式 自定义命名,setData 不能修改原值,不能嵌套在if/for/其他函数中,传参:2、useEffect在dom渲染之后执行 ,三种执行时机。没有依赖项时,初始化时执行一次,在修改数据更新组件都会执行useEffect(页面重新渲染)有空数组依赖项时,useEffect只在初始化时执行一次在这里发送网络请求,相当于在类组件的生命周期钩子函数componentDidMount阶段中。当有特定依赖项时,初
2022-06-29 16:59:33
762
原创 创建虚拟dom
只有一个h1标签1、使用jsx创建2、使用js创建虚拟dom在h1中再嵌套span标签用jsx的话直接写就可以了但是用js的话就不可以了需要再用一个React.createElement
2022-06-27 23:37:23
202
原创 Vue.js数据双向绑定原理与实现
数据劫持取实例监听的属性值时,触发getter。触发getter 时添加订阅者到订阅者数组中。在setter通知每一个订阅者更新dom。2.3模板解析模板解析时,把节点值 替换内容后,需要告诉订阅者要更新自己:创建实例。在update中获取最新值 传给回调函数。2.4Dep构造watcher实例时 把实例存到Dep实例中。2.5watcher在update中获取最新值 传给回调函数。收集完watch......
2022-06-16 22:26:48
228
原创 Object.defineProperty新增/修改属性数据代理
1、给对象添加属性 <script type="text/javascript"> let person = { name:'庄文杰', sex:'男' } //给对象添加属性 参数:给哪个对象添加属性、属性名、配置项 Object.defineProperty(person,'age',{ value:18 })
2022-06-15 00:22:54
299
原创 let 块级作用域
1、var 和 let 函数作用域函数执行结束后变量会被js回收机制回收报错2、同一作用域不可重复声明不在同一作用域:3、if{}块作用域4、for的在for(; ; ) {}循环中 (; ;)为父作用域,{}为子作用域而使用var时:使用let但没有赋值时:没有在子作用域定义时:使用父作用域的:修改父作用域的:重复定义:5、使用var:使用let:......
2022-06-13 23:19:53
368
原创 扩展运算符和剩余参数rest
扩展运算符1、数组合并2、数组拷贝数组深浅拷贝:实现深拷贝:3、将伪数组转为真正的数组剩余参数restES6 引入 rest 参数,用于获取函数的实参,用来代替 arguments 。含有其他参数 rest参数必须放在最后面.........
2022-06-12 19:10:00
120
原创 vuex基本使用
1、没有使用vuex时实现:2、使用vuex在main.js 引入 import store from ‘./store’ ,再放入 new vue({})中。store/index.js在vue组件中:$store.state.sum实现或者使用 mapMutations、mapActions 辅助函数将组件中的 methods 映射为 store.commit。记住需要参数传递时@click="fun(n)”绑定事件时带参数实现数组形式:当事件方法名跟vuex中相同的情况下需要传
2022-06-07 16:21:22
128
原创 前端权限管理
定义好全部的路由地址(需要权限校验)通过用户不同向后台请求不同的用户权限数据对用户权限做对比:请求数据 与 全部的路由对比,筛选后取出来作为路由配置1、初始化路由router/index.js2、全局路由导航守卫路由权限处理router/permission.js3、封装网络请求方法api/index.js4、封装axios请求拦截和响应拦截utils/http.js5、store状态管理store/index.jsstore/modules/index.js 封装不同模块
2022-06-06 16:14:17
633
原创 安装与查看是否安装
1、node.js查看node版本:node -v查看npm:npm -v查看cnpmcnpm -v2、yarnnpm install -g yarn//查看yarn3、vue-cli脚手架npm install -g @vue/cli//查看安装vue -V4、element-uinpm i element-ui -S
2022-06-02 01:02:34
1977
原创 折叠使用vuex
仅对该 折叠功能 简洁分析过程main中:<template> <el-container style="height:100%"> <!-- 侧边栏 --> <el-aside width="200px"> <Aside></Aside> </el-aside> <el-container>
2022-06-02 00:58:58
145
原创 tag面包屑vuex
1、tag.vue首页不能删 默认在<template> <div class="tabs"> <el-tag v-for="(tag,index) in tags" :key="tag.name" :closable="tag.name!=='home'" :effect="$route.name === tag.name ? 'dark' : 'plain' " @click="changeMe
2022-06-02 00:48:04
413
2
原创 instanceof实现原理
instanceof实现原理是判断构造函数的原型对象是否在实例对象的原型链上,是的话返回true,否则返回falsefunction Myinstanof (father,child){ const fp = father.prototype var cp = child.__proto__ while(cp){ if(cp===fp) return true cp = cp.__proto__ } return false}
2022-05-31 12:20:06
120
原创 defineProperty和proxy区别
监听对象1、defineProperty只能劫持对象的某一个属性,不能对整个对象进行劫持,如果需要监听某一个对象的所有属性,需要遍历对象的所有属性并对其进行劫持来进行监听。无法监听对象新增属性,// 原始对象const data = { name: 'Jane', age: 21, hhh:{ xxx:'hxhx' } } Object.keys(data).forEach(key => { let oldValue = dat
2022-05-31 01:21:12
139
原创 router.beforEach
未完伪代码import Vue from 'vue'import Router from 'vue-router'import xxx from 'xxx.vue'Vue.use(Router)const routes = [ { path:'/xxx', name:'xxx', component:xxx },]const router = new Router({ mode: 'history', routes
2022-05-27 21:26:20
1295
原创 js创建对象,构造函数,this,原型,继承
js创建对象1、使用构造函数(各实例间互不影响)(函数声明式创建函数对象)function Fun(){ this.name = ['林北星','张万森','展宇']; this.age = ['17','17','19']; this.fun = function(){ console.log('这是对象的方法'); }}console.log(Fun);var s1 = new Fun();//创建实例对象var s2 = new Fun(
2022-05-26 15:12:56
254
原创 vue中data为什么是函数
1、data是函数不会污染 <script> function Data(){ return{ name:'lxx', age:18 } } //在App.vue 导入import Child from "./components/Child"时 Child也是一个对象 //组件对象Child1有data属性 ,data:Data
2022-05-21 11:50:42
1255
原创 set数组去重及与map
1、set创建有两种用add、直接传入数组。const s1 = new Set()s1.add(1)s1.add(2)s1.add(3)const s2 = new Set([1,2,3])console.log(s1)console.log(s2);2、set不含重复const s = new Set()s.add(1)s.add(2)s.add(3)s.add(3)console.log(s);//还是Set(3) { 1, 2, 3 }3、delete、has、s
2022-05-18 18:39:56
516
原创 图片懒加载IntersectionObserver
//获取图片元素const images = document.querySelectorAll('img');//scroll滚动事件window.addEventListener('scroll',(e)=>{ //判断每张图片的位置是否出现在可视区域 images.forEach(image =>{ //获取每张图片到顶部的距离 const imTop = image.getBoundingClientRect().top;
2022-05-18 16:21:34
213
原创 watch监听
1、普通监听<body> <div id="app"> <p>年龄:{{age}}</p> <button @click="age++"> 修改age,增加年龄</button> </div></body><script src="vue-2.6.12.js"></script><script> const vm = new Vue(
2022-05-18 15:00:56
79
原创 mock模拟数据显示折线图柱状图饼图
效果图1、安装mocknpm i mockjs2、mock.js引入mockimport Mock from 'mockjs'//模块的方式将回调函数引入import homeApi from '@/api/mockServeData/home.js'//拦截器规则 url地址 回调函数返回具体的数据Mock.mock('/home/getData',homeApi.getStatisticalData)3、模拟数据 home.js// mock数据模拟imp
2022-05-14 16:04:51
785
原创 简单理解实现分页查询
举例分页:每页显示5条数据。1、查询 第1页: pageNum=1 pageSize=5.(pageNum-1)*pageSize = 该页的起始位置(1-1)*5 =0 ——> limit 0,50: 从第1个数据开始 。5: 每页有5个数据。select * from sys_user limit 0,52、查询 第2页: pageNum=2 pageSize=5.(pageNum-1)*pageSize = 该页的起始位置(2-1)*5 =5
2022-05-10 20:57:50
1525
原创 js之排序算法简洁
此时经过if判断high = mid-1,left还是mid,left>high退出循环。此时经过if判断,low=mid+1>,high还是mid,low>high退出循环。当前 i 往它的左边看,不合适的往后移,腾出一个位置可插入,不断去找这个值应该插在什么位置。所以不管哪种情况,val的位置就是low,或者说是high+1。平均时间复杂度:O(nlogn)最差时间复杂度:O(n^2)平均时间复杂度:O(n^2)最好时间复杂度:O(n^2)最差时间复杂度:O(n^2)平均时间复杂度:O(n^2)
2022-05-08 22:33:14
782
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人