VUE+CSS基础知识整理 部分

前端
1 dom操作
1、获取dom对象
1)document.getElementById(‘id的值’);
2)document.getElementsByClassName(‘class的值’);
3)document.getElementsByTagName(‘标签名字’)
4)document.getElementsByName(‘name属性的值’);
2、dom操作
1)操作标签的本体(

XXXX
XXX)
对象.innerText = ‘文本内容’;
对象.innerHTML = ‘html内容’;
2)操作标签的属性
getAttribute(‘属性’) 获取对应属性的值
setAttribute(‘属性’,值) 修改对应属性的值
3)操作css
对象.style.样式名=值
3、dom高级查找
1)查找子元素
对象.children;-获取所有的子元素
2)查找父元素
对象.parentNode–获取子元素的父元素
3)相邻元素的查找
上一个:previousElementSibling
下一个:nextElementSibling
4)创建新的元素
document.createElement(‘标签名’)
5)追加元素:
对象.appendChild(要追加的对象)
6)移除对象:
对象.removeChild(要移除对象的引用);
2 ajax:asynchronous javascript and xml
XMLHttpRequest的对象:可以用来发送http请求,接收http响应
1、XMLHttpRequest的对象的建立
let xhr = new XMLHttpRequest();
2、XMLHttpRequest的对象的属性
1)readyState 用来返回请求的状态
0: 未初始化状态
1: 打开状态 对象的open方法
2: 发送状态 对象的send方法,并没有接收到结果
3: 正在接收状态 响应头已经接收到,但响应体没有接收完毕
4: 已加载状态 表示响应已经完全被接收
2)status 返回服务器的响应状态码
200: OK
404
500
3)response属性获取返回结果
4)onreadystatechange -注册状态改变事件
3、方法
open(method,url,isAsync) : 建立http连接
send(参数) : 发送请求
4、js-ajax 连接步骤
1)建立对象
let xhr = new XMLHttpRequest();
2)注册状态改变监听事件
xhr.onreadystatechange = function(){
//判断请求状态和响应状态码
if(xhr.readyState 4 && xhr.status200){
let obj = JSON.parse(xhr.response);//获取到的结果是字符串,将字符串转换成对象
console.log(obj.list);
//操作dom,把数据放在对应的dom上

}
}
3)调用open方法,建立连接
xhr.open(‘get’,‘http://localhost:8080/ajax-server/userinfo/getAll’,true or false)
4)调用send方法,发送请求
xhr.send(null);
3 es6新特性
1、块级作用域变量
1)let定义块级作用域变量
2)const 定义只读变量
const声明变量的同时必须赋值,const声明的变量必须初始化,一旦初始化完毕就不允许修改
2、函数
1)可以给形参函数设置默认值
function fun2(a=1,b=2){
console.log(a,b)
}
2)箭头函数
var fun3 = (a)=>{console.log(a);}
3、数组的展开运算
在数组之前加上三个点(…)
var arr = [1,2,3,4,5];
console.log(arr);//[1, 2, 3, 4, 5]
console.log(…arr)// 1 2 3 4 5
4、apply和call
apply(this的指向,数组/arguments)
call(this的指向,参数1,参数2,参数3)
5、解构赋值
1)数组的解构赋值
var [a,b,c]=[11,22,33]
console.log(a,b,c)//11 22 33
2)对象的解构赋值
var{name,age}={name:“张三”,age:“20”}
console.log(name,age)//张三 20
3)解构json
var jike = {“name”:“tom”,“age”:“23”,“sex”:“男”};
var {name,age,sex}=jike;
console.log(name,age,sex)//tom 23 男
6、string中加入include方法
1)includes(“字符”); 用于判断字符串中是否包含某个字符
2)includes(“字符”,startIndex); 用于判断字符串中下标startIndex是否是某个字符
7、Set()和Map()
1)Set有序列表集合,包含的方法:add()、has()、delete()、clear()等
2)Map键值对的集合 key/value,包含的方法:get(key)、has()、clear()等
4 vue
1、生命周期:
1)beforeCreate:在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。
2)created:实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer),属性和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始, e l 属 性 目 前 不 可 见 。 3 ) b e f o r e M o u n t : 在 挂 载 开 始 之 前 被 调 用 : 相 关 的 r e n d e r 函 数 首 次 被 调 用 。 该 钩 子 在 服 务 器 端 渲 染 期 间 不 被 调 用 。 4 ) m o u n t e d : e l 被 新 创 建 的 v m . el 属性目前不可见。 3)beforeMount:在挂载开始之前被调用:相关的 render 函数首次被调用。该钩子在服务器端渲染期间不被调用。 4)mounted: el 被新创建的 vm. el3beforeMount:render4mounted:elvm.el 替换,并挂载到实例上去之后调用该钩子。如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。该钩子在服务器端渲染期间不被调用。
5)beforeUpdate:数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。该钩子在服务器端渲染期间不被调用。
6)updated:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。然而在大多数情况下,你应该避免在此期间更改状态。如果要相应状态改变,通常最好使用计算属性或 watcher 取而代之。该钩子在服务器端渲染期间不被调用。
7)beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。该钩子在服务器端渲染期间不被调用。
8)destroyed:Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。该钩子在服务器端渲染期间不被调用。
2、常用指令

1)绑定本体 <标签>{{变量名}}</标签>
2)属性的绑定 v-bind:属性
xxxx
3)元素的显示和隐藏 v-if=“boolean值”
yyyy
4)数组与dom的绑定 v-for=“数组元素 in 数组”
5)元素事件的绑定 v-on:事件名=“vue对象methods属性中的方法名”
按钮
6)表单输入和应用状态之间的双向绑定

3、Vue.js 组件
1)注册组件Vue.component(tagName,options)
Vue组件需要注册后才可以使用。注册有全局注册和局部注册两种方式。
Vue.component( ‘my-component’, {
template: <div>这是一个全局注册的组件</div>
});
var Child = {template: <div>局部注册组件的内容</div>};
new Vue({
el: ‘#app’,
components: {
‘my-component’: Child
}
});
2)调用组件
3)组件通信
在 Vue 中,父子组件的关系可以总结为 props down、events up
父子组件通信:父组件通过 props 向下传递数据给子组件
子父组件通信:子组件通过 events 给父组件发送消息
-使用 $on(eventName) 监听事件
-使用 e m i t ( e v e n t N a m e ) 触 发 事 件 非 父 子 组 件 通 信 : 使 用 一 个 空 的 V u e 实 例 作 为 中 央 事 件 总 线 4 、 模 板 语 法 ( 数 据 绑 定 语 法 ) 1 ) 文 本 绑 定 < 标 签 > d a t a 中 的 属 性 < / 标 签 > i n n e r T e x t 2 ) h t m l 绑 定 i n n e r H T M L < 标 签 v − h t m l = " d a t a 中 的 属 性 " > < / 标 签 > v − h t m l 不 是 v u e 推 荐 的 数 据 绑 定 的 方 式 3 ) 元 素 属 性 的 绑 定 : ( v − b i n d ) : 属 性 < i n p u t t y p e = " t e x t " : r e a d o n l y = " i s R e a d o n l y " > n e w V u e ( d a t a : i s R e a d o n l y : f a l s e , , m e t h o d s : c h a n g e ( ) t h i s . i s R e a d o n l y = ! t h i s . i s R e a d o n l y ; , , ) . emit(eventName) 触发事件 非父子组件通信:使用一个空的 Vue 实例作为中央事件总线 4、模板语法(数据绑定语法) 1)文本绑定 <标签>{{data中的属性}}</标签> innerText 2)html绑定 innerHTML <标签 v-html="data中的属性"></标签> v-html不是vue推荐的数据绑定的方式 3)元素属性的绑定: (v-bind):属性 <input type="text" :readonly="isReadonly"> new Vue({ data:{ isReadonly: false, }, methods:{ change(){ this.isReadonly = !this.isReadonly; }, }, }). emit(eventName)使Vue线4()1<>data</>innerText2htmlinnerHTML<vhtml="data"></>vhtmlvue3:(vbind):<inputtype="text":readonly="isReadonly">newVue(data:isReadonly:false,,methods:change()this.isReadonly=!this.isReadonly;,,).mount(’#app’);
4)在以上的绑定中,可以使用js的表达式
{{msg+1}}
{{ok?‘YES’:‘NO’}}
{{str.split(’’).reverse().join(’’)}}
错的:
{{var x}}
{{if(ok){return ‘OK’}}
5)指令
v-if=“boolean”
v-bind:属性名
v-on:事件
6)修饰符
@事件.修饰符 = “处理方法指针”
<button @click.prevent=“fun”>按钮
相当于js中直接写 event.preventDefault();
7)缩写:(vue推荐的写法)
v-bind: 写成 :
v-on: 写成 @
5、计算属性和侦听器
1)计算属性:

{{reverseMsg}} {{reverseMsg}} {{reverseMsg}}
let v = new Vue({ data:{ msg: 'abcd', }, computed:{ reverseMsg: function(){ console.log('reverseMsg'); return this.msg.split('').reverse().join(''); } }}).$mount('#app'); 计算属性和普通方法区别:计算属性有缓存;两者的调用方式不同 计算属性好处:可以将一个复杂的表达式用一个功能来返回;比普通方法有缓存功能,带来性能上提升;可以自动识别数据的改变,数据变化后,方法才会重新计算结果 计算属性缺点:当计算属性和属性没有任何关系的时候.计算属性就不会动态响应 2)侦听器
{{msg}}
对象的遍历,是不能保证结果的顺序的,按Object.keys()-无序集合 9、数据更新的检测 1)数组会触发dom更新的方法 push() pop() shift() unshift() splice() sort() reverse() 2)数组中不会触发dom更新的方法 filter() concat() slice() 解决办法是:改变数组指针-数组重新赋值 3)数组的索引和长度的改变,无法触发dom的更新 数组[x] = 值 数组.length = 值 解决办法: Vue.set(this.items,1,'x'); this.$set(this.items,2,'y'); this.items.splice(0) 4)vue不能检测对象的属性添加和删除 解决办法: 添加 this.$set(this.items,'c',3); Vue.set(this.items,'d',4); :删除 delete this.items.属性 /delete this.items.a; delete this.items['a']; 批量添加: this.items = Object.assign({},this.items,{c:7,d:8}); 10、路由方式 1) ex: 2) Shop 3)对应路由配置中的 { path: '/search/:x', --要求,你必须传递这个参数 name: 'Search', component: Search, }, 接收的时候: console.log(this.$route.params.x); 4)this.$router.push('/地址'); this.$router.push( { path: '/Shop', name: 'Shop', 传递参数: params:{//类似post 隐藏参数 接收的时候:this.$route.params 参数.... } query:{//类似get 不隐藏参数 接收的时候:this.$route.query 参数.... } }) 使用name params和query都是可以的 使用的是path 只有query好用 推荐大家使用 name 来进行路由的跳转指定 5)其他 this.$router.replace() 用法是一样的 跳转到指定路径,histroy中不会有记录 this.$router.go(n) 向前或者是向后跳转n个页面,n正数是向前,负数是向后 4 css 选择器 { 样式声明; 样式声明; … … } 1、选择器 1)HTML标签选择器:直接作用于某个HTML标签 2)类选择器:可在页面中被多次使用 3)ID选择器:作用于同一ID的某个资源,同一个页面中只能使用一次 2、样式 1)行内样式:内联样式,写在某个标签中,只对本行有效。 2)内嵌样式:也在某个页面中,只对本页面有效。 3)外部样式:写在某个单独的.CSS文件中,对引用该文件的页面有效。 链接方式: 标签属于XHTML,使用链接的CSS文件先加载到网页当中,再进行编译显示。Link 支持使用javascript改变样式。 导入方式: @import是属于CSS2.1特有的,对于不兼容CSS2.1的浏览器来说就是无效的。使用@import导入的CSS文件,客户端显示HTML结构,再把CSS文件加载到网页当中。 @import不支持使用javascript改变样式 就近原则:距离最近的样式有效。 顺序原则:最后书写(不是调用)的样式有效。 精细原则:或者叫特殊原则。既选择器的指向越精细越优先。 3、复合选择器 1)后代选择器 p .ztsz{ color:blue; font-size:24px; } 2)交集选择器 p.ztsz{ color:red; font-size:36px; } 3)并集选择器 p,.ztsz,#uname{ color:red; font-size:36px; } 4)继承 子标签可以继承父标签的样式风格 子标签的样式不会影响父标签的样式风格 一般只有文字文本具有继承特性,如文字大小、文字加粗、文字颜色、字体等。 4、长度单位 1)相对长度单位: px: 像素(Pixel,与屏幕分辨率有关)。 p{font-size:12px;} em: 相对于当前对象尺寸的倍数。 p{font-size:2em;} rem: 相对于html对象尺寸的倍数。 p{font-size:2rem;} %: 百分比 p{font-size:80%;} 2)绝对长度单位: pt: 点(Point)。 cm: 厘米(Centimeter)。 mm: 毫米(Millimeter)。 换算比例:1in(英寸) = 2.54cm = 25.4 mm = 72pt = 6pc 5、颜色单位 #rrggbb (如: 最适合网页背景的颜色:#f9f9f9) #rgb (如:#fc0 = #ffcc00) rgb(x,x,x) 其中x是一个0-255的整数值,分别代表:红、绿、蓝。 如rgb(255,204,0) rgb(x%,x%,x%) 其中x是一个0-100的整数值,如rgb(100%,80%,0) 6、常用的页面元素 内联元素:如a、span、sup、sub这样可以共享行,有没有尺寸的元素 块级元素:如p、ul、li、div、hn等这样独享行,且可以设定尺寸的元素 行块元素:如img、input等可以和其他元素共享行,又可以进行尺寸设定的元素 7、常见样式 1)字体样式 属性名 含义 值 font-family 设置字体名称 font-size 设置字体大小 单位:px(像素),in(英寸),cm,mm等 font-style 设置字体风格 normal, italic, oblique font-weight 设置字体的粗细 normal, bold, bolder, lighter , 100 – 900 (400为normal,700为bold) font-variant 设置字体小型大写字母 normal, small-caps font-stretch 设置字体横向拉伸变形 (大部分浏览器不支持) font 在一个声明中设置所有字体属性 || || || || || 2)文本样式 属性 含义 值 color 设置文本颜色 #45F78, #ff6600, #f60, rgb(0,0,0) text-align 设置元素水平对齐方式 left, center, right, justify vertical-align 设置元素垂直对齐方式 middle, top, bottom, 长度或百分比(可为负值) (只对内联元素有效。或对td、th有效。) text-indent 设置首行文本的缩进 长度或百分比(可为负值) line-height 设置文本的行高 normal, 长度或百分比(可为负值) text-decoration 设置文本的装饰 none, underline, overline, line-through text-transform 设置文本的大小写 capitalize: 将每个单词的第一个字母转换成大写 uppercase: 将每个单词转换成大写 lowercase: 将每个单词转换成小 letter-spacing/ word-spacing 字母间隔/文字间隔 长度或百分比(可为负值) 3)尺寸样式 属性 含义 值 width 宽度 长度或百分比(不可为负值) height 高度 长度或百分比(不可为负值) 4)display 属性 含义 值 display 显示类型 none:不显示 inline:行级元素,如a、span inline-block:行块元素,如img block:块级元素,如p、h、ul list-item:列表项,如li 5)背景样式 属性 含义 值 background-color 背景颜色 #45F78, #ff6600, #f60, rgb(0,0,0) background-image 背景图象 图片URL或none background-repeat 背景重复 repeat、repeat-x、repeat-y、no-repeat background-attachment 背景附件 scroll(滚动)或fixed(固定) background-position 背景位置 横向(left, center, right)、纵向(top, center, bottom)、长度或百分比(可为负值) background 在一个声明中设置所有背景属性 <背景颜色> || <背景图象> || <背景重复> || <背景附件> || <背景位置> 6)列表样式 属性 含义 值 list-style-image 列表项图像 图片URL或none list-style-position 列表项目缩进程度 outside、inside list-style-type 列表项所使用的预设标记 disc、circle、square等 decimal、lower-alpha、lower-roman等 list-style 在一个声明中设置所有列表属性 [ list-style-image ] || [ list-style-position ] || [ list-style-type ] 7)鼠标样式 值 说明 值 default 默认光标 pointer 超链接的指针 wait 指示程序正在忙 help 指示可用的帮助 text 指示文本 crosshair 鼠标呈现十字状 8)元素透明度 属性 说明 备注 opacity:x x值为0~1,值越小越透明 IE不支持 filter:alpha (opacity=x) x值为0~100,值越小越透明 仅IE支持 9)伪类选择器 伪类名称 含义 示例 a:link 未单击访问时的超链接样式 a:link{color:red;} a:visited 单击访问后超链接样式 a:visited{color:red;} a:hover 鼠标悬浮其上的超链接样式 a:hover{color:red;} a:active 鼠标单击未释放的超链接样式 a:active{color:red;} 8、
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值