结构体struct,结构体数组,结构体指针 3、使用typedef : stu 就是 struct Student类型的。1、定义结构体变量后对每个成员分别赋值。也可以在声明结构体时就定义结构体变量。2、定义结构体变量时就直接赋值。6、指向结构体数组 的指针。4、指向结构体变量的指针。
javascript继承 还是有缺点:当进行修复子类构造函数的指向Child.prototype.constructor = Child;优点:共享原型对象上的方法,方法定义在父类原型上,复用父类构造函数方法,如say方法。缺:方法不能复用,独立的(各实例不能通过父原型上的方法进行复用)。parent一般将属性封装在构造函数中,将方法定义在原型对象上。不能继承父类原型上的方法,如下例的fun方法。优:可向父类构造函数传参,不共享引用属性。父类实例的构造函数指向也会跟着变。,会存在一份多余的父类实例属性。比如下例子的arr属性。...
动态表单配置select 1、通过el-form-item v-for=“(formName, index) in dynamicForm.formNames”遍历多个动态表单,数据项:默认的下拉框属性值:遍历的option是用计算属性el-option v-for=“item in filterOptions[index]”添加表单:实现添加表单实现删除表单:随意的提交全部代码:...
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,我是
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中使用:.........
配置@路径简化路径处理 craco.config.js:3、修改 package.json 中的脚本命令。package.json中的"scripts":全覆盖了在代码中,就可以通过 @ 来表示 src 目录的绝对路径。
Hooks在函数组件中使用useState、useEffect、useRef、useContext 只能在函数组件中,[数据data,修改数据方法setData ]----固定形式 自定义命名,setData 不能修改原值,不能嵌套在if/for/其他函数中,传参:2、useEffect在dom渲染之后执行 ,三种执行时机。没有依赖项时,初始化时执行一次,在修改数据更新组件都会执行useEffect(页面重新渲染)有空数组依赖项时,useEffect只在初始化时执行一次在这里发送网络请求,相当于在类组件的生命周期钩子函数componentDidMount阶段中。当有特定依赖项时,初
创建虚拟dom 只有一个h1标签1、使用jsx创建2、使用js创建虚拟dom在h1中再嵌套span标签用jsx的话直接写就可以了但是用js的话就不可以了需要再用一个React.createElement
Vue.js数据双向绑定原理与实现 数据劫持取实例监听的属性值时,触发getter。触发getter 时添加订阅者到订阅者数组中。在setter通知每一个订阅者更新dom。2.3模板解析模板解析时,把节点值 替换内容后,需要告诉订阅者要更新自己:创建实例。在update中获取最新值 传给回调函数。2.4Dep构造watcher实例时 把实例存到Dep实例中。2.5watcher在update中获取最新值 传给回调函数。收集完watch......
Object.defineProperty新增/修改属性数据代理 1、给对象添加属性 <script type="text/javascript"> let person = { name:'庄文杰', sex:'男' } //给对象添加属性 参数:给哪个对象添加属性、属性名、配置项 Object.defineProperty(person,'age',{ value:18 })
let 块级作用域 1、var 和 let 函数作用域函数执行结束后变量会被js回收机制回收报错2、同一作用域不可重复声明不在同一作用域:3、if{}块作用域4、for的在for(; ; ) {}循环中 (; ;)为父作用域,{}为子作用域而使用var时:使用let但没有赋值时:没有在子作用域定义时:使用父作用域的:修改父作用域的:重复定义:5、使用var:使用let:......
扩展运算符和剩余参数rest 扩展运算符1、数组合并2、数组拷贝数组深浅拷贝:实现深拷贝:3、将伪数组转为真正的数组剩余参数restES6 引入 rest 参数,用于获取函数的实参,用来代替 arguments 。含有其他参数 rest参数必须放在最后面.........