小兔鲜电商
ref可以接收简单数据类型和对象数据类型 而reactive只能接收对象数据类型 二者返回的都是一个响应式的数据对象,就是数据和页面进行绑定,同步变换的一个对象 插槽:#default其实就是v-slot:default的缩写 小练习: 渲染功能:声明一个响应式数据列表,定义一个函数,然后在用生命周期钩子,在挂载完成(onmounted)的时候,就是onmounted()里面调用我自定义的函数,实现从后端返回数据与我自己定义的响应式数据列表进行的替换。 其中,v-bind进行数据的渲染,标签里面的prop进行数据key的一一对应, 给删除按键绑定点击监听事件,拿到要删除的id,使用axios调用接口进行数据删除,随后使用渲染功能将删除后的页面重新渲染到页面上。 编辑功能:首先模板引用让父与子进行组件之间的联系,插槽可以拿出我渲染对象时的每一个具体对象。然后对于子组件进行逻辑的书写,定义一个ref响应式数据,规范好数据的格式,将这个方法defineExpose暴露出去,父亲可以使用,对子集的确认绑定update更新,逻辑为调用axios接口更改数据,关闭弹框,列表的重新...
vue2/3
Vue中有两种数据绑定: 单向数据绑定:数据只能从data流向页面,(即就是在Vue调试工具进行操作,页面的内容会改变 双向数据绑定:v-model 双向数据绑定只能用于表单数据元素上面(input,select) 基本指令:条件渲染 v-if v-else:指的是对于两个表单,把所有情况分为两种,显示一种。 列表渲染 v-for:条件渲染 v-for=”(item,index) in list” :key=’item.id’ :key = “item.id”的作用是:唯一标识符,对于DOM元素每次不是重新渲染,而是尽可能地复用。(如果没有id属性的话,:key=”index”) v-model可以同步获取表单元素,例如表单的选中与否,都可以通过这个属性与之绑定。(双向绑定) 他有三个属性: lazy:只有失去焦点或者是回车键才会触发 1<input v-model.lazy="msg"> number:将字符串转换为有效数字 trim输入首尾空格进行过滤(去掉首位空格,邮箱手机...
js
基本要求:window.onload:先加载,最后执行: 浏览器默认是从上往下执行代码的 因为我的js代码一般都要写到最后,script写在body的最后面,但是我想写在head的话,我就需要使用window.onload给他包裹起来,当所有的加载都完毕的时候,执行包裹的代码。 这个和vue3中的生命周期钩子,onMounted类似,都是加载完成后在进行。 对于弹窗:12console.log()//用于调试alert()//用于浏览器弹框 网页内容输入:document.write() 常量和变量:ES6新增:const和let,其中const为常量,let为变量 而在之前还有var,现在不用了。 可以先使用在声明,存在变量提升,仅仅是不用声明了,但是依旧是没有赋值的,此时打印仍为undefined,只是不报错罢了。 没有块级作用域,要么是全局要么是整个函数(不会被if、for{}给包起来) 对于const、let,同时变量声明是有顺序的,后面的值会把前面的给覆盖掉。 对于const为常量的理解:不可变的是指针内存地址,而不是对象内部的数据 例如const ar...
css基础
clip-path 属性的作用是:定义一个剪裁区域,只有在这个区域内的内容才会被显示,区域外的部分都会被“剪掉”变成透明。1234567.triangle { width: 200px; height: 200px; background: red; /* 三个点:顶部中点(50% 0%),右下角(100% 100%),左下角(0% 100%) */ clip-path: polygon(50% 0%, 100% 100%, 0% 100%); } 如图: 这个属性感觉不用记住 https://bennettfeely.com/clippy/访问这个网站,自己拖动出自己想要的图形,下方会自动生成代码,复制就行。 css布局属性:(1)display 确定元素的显示类型: 常见的块级元素:div h1 p ul li 常见的行内元素:span a b i 等标签是行内块标签,既能设置设置宽高,也能在一行排列,不独占一行。 block:块级元素。//可以设置宽高,如果没有设...
css基础
css单位 css单位是必须要写的,因为它没有默认单位。 相对单位:px:最常用 em:印刷单位相当于12个点,一般都是首行缩进使用em,无论字号怎么变,都使用的是2em,缩进两个字符 其中 123456789<div class="parent" style="font-size: 20px;"> 我是父盒子 (20px) <div class="child" style="font-size: 1.5em;"> 我是子盒子 (1.5 * 20 = 30px) <div class="grandchild" style="font-size: 2em;"> 我是孙子盒子 (2 * 30 = 60px) </div> </div></div> %:百分比,相对周围的文字的大小 font字体属性:12345678p{ font-size...
HTML基本知识
排版标签:段落标签p是一个文本级标签,p里面只能放文字、图片、表单元素。 其中表单元素:input框,button按钮,selecte下拉菜单等 但是p标签里面可以包含a标签 水平线标签div和span标签 其中div标签独占一行 div是容器级标签,div盒子嘛,块级block span是文本级标签,和p一样也是只能放文字、图片、表单元素,行内inline 这俩的区别就div啥都能写,span是有限制的,如上。 a标签 虽然说是a标签是文本级标签,但是也可以包含div盒子,让整个区域都变成可点击的。 锚链接123<a href="" name="自己取名字"></a>//使用这种方式可以实现底部返回的效果<a href="#自己取名字"></a>//#符号一定要写 title属性:鼠标悬停会显示对应的文字 图片标签img:1<img src="图片的URL" /> 图片相对路径: ./和../分别表示当...
十大排序
冒泡排序: 对于一个数组,用双重for循环,依次将最大的排序到数组末尾,每次循环遍历依次减小。 第一重for循环,是为了对于第二重for循环里面的值进行限定范围,即就是每次循环之后吧最大的放到最右边,那么我第二次循环就可以少循环一次 在循环交换的时候,是对于第二重循环里面交换即就是arr[j+1]和arr[j]交换 选择排序: 一个数组,找出最小的元素,将其依次放在数组中。注意要定义临时下标p,便于按序对于数组的位置进行存储。 其实我第二个for循环的目的就是为了找到最小值对应的索引然后存起来,和我的第一个值进行交换。 插入排序: 一个数组,从1索引位置开始,如果发现prev的数字比curr数字大,就用prev的数字把当前的数字给补充上,而我的curr数字被临时指针存储了,也就意味着我找到合适位置,我会将其插入到数组中,也就解释了插入排序。 在每次循环遍历完成之后,我的prev指针要后移,prev–,随后进行插入值的操作。 同时要注意需要使用临时变量记录当时的arr[i]否则的话,前一项将其覆盖掉了,此数据会永久丢失。 希尔排序: 要注意初始增量,也就是说:对于一个偶数的数...
start
我的文档开始了,第一篇。我的本地配置搞好了。
