HTML
html的标签是已经定义的,不可以随意更改
这是一个图片标签
最外层的标签为
1 2 3 4
| <!DOCTYPE html> <head> <title>ciallo!</title> </head>
|
CSS
Javascript
js弱类型语言,使用let声明,不需要指定变量的数据类型,定义函数的时候也不需要指定返回值类型
具名函数类似于普通编程语言的函数和方法
匿名函数类似于构造函数可以用来直接赋值
匿名函数:
1 2 3
| let add=function(a,b){ return a+b; }
|
1 2 3
| let add=(a,b)=>{ return a+b; }
|
箭头函数省略function
js自定义对象
1 2 3 4 5
| let 对象名={ 属性名:属性值, 方法名:function(形参列表){} 方法名(){} }
|
不建议使用匿名方法,并且要使用逗号分隔
json
js对象标记法写的文本,本质是字符串,多用于网络报文的数据载体,所有的key使用双引号引起来,数字直接写,最外层使用大括号包裹
可以将一个自定义对象转换成json对象
1 2
| let person='{"name":"0d00","age":18}' alert(JSON.parse(person).name)
|
先将json字符串转成对象,再进行访问
DOM可以将网页中的所有元素当作对象来进行处理
1 2
| document.querySelector('选择器') document.querySelectorAll('选择器')
|
操作DOM对象的步骤,专门用来操作网页内容的操作
1.先获取DOM对象
2.调用DOM对象中的属性可以进行修改或调用
事件监听
1 2 3 4
| 事件源.addEventListener('事件类型',事件触发的函数) document.querySelector('button').addEventListener('click',function(){ alert("0721") })
|
事件类型对应关键字
鼠标事件:
1 2 3
| click mouseenter mouseleave
|
键盘事件:
焦点事件:
表单事件:
1 2 3 4
| document.querySelector("#id") document.querySelector(".class") document.querySelector("标签名") document.querySelector("[type="button"]")
|
外联js代码
1
| <script src="路径" type="module"></script>
|
module意思是模块化代码就是外联js代码
Vue
构建用户界面的渐进式js框架,基于数据渲染用户界面
使用步骤
引入Vue模块,创建Vue应用实例,定义元素后交给Vue控制
1 2 3 4 5 6 7 8 9 10
| <script type="module"> import {createApp} from'https://unpkg.com/vue@3/dist/vue.esm-browser.js' createApp({ data(){ return{ message:'Hello Vue' } } }).mount('#app'); </script>
|
mount指定接管的区域,里面引用的一半是id(#的引用在这里体现)
动态接收客户端请求并渲染显示在页面上,无需自己通过dom树修改页面元素,规避xss风险
Vue常用指令(感觉有点像c++里的模板)
v-for
列表渲染,遍历容器元素或对象属性
1
| <tr v-for="(item,index) in items" :key="item.id">{{item}}</tr>
|
items为遍历的数组
item为遍历出来的元素
index为索引,从0开始;可以省略
key用于为元素添加唯一标识,便于vue进行列表项的正确排序复用,提升渲染性能
从对象中获取key,推荐使用id作为key,因为id的值唯一
|
为想要遍历展示多次的元素
插值表达式不可出现在标签内部
v-bind
动态为html标签绑定属性值,如设置href,src,style
1
| <img v-bind:src="item.image" width="30px">
|
绑定的数据必须是遍历的对象中已经定义的属性
v-if &v-show
均为用来控制元素显示与隐藏
1 2 3
| <span v-if="gender==1">男生</span> <span v-else-if="gender==2">女生</span> <span v-else="gender==3">xnn</span>
|
基于条件判断来显示元素,适用于不频繁切换的场景
v-show语法与v-if一致
区别在于v-show基于CSS样式display来控制显示与隐藏,适用于频繁切换的场景
v-show没有else的用法
v-model
绑定表单项,获取表单项中的数据或设置表单项的数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <script> createApp({ data(){ return{ searchForm:{ name:'', gender:'', job:'' } } } }).mount('#container') </script> <input type="text" id="name" v-model="searchForm.name">
|
v-model中的数据类型必须在data中定义
该绑定为双向绑定,即可以通过页面数据改变数据模型中的数据,反之也可以
v-on
为html添加事件监听
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <button type="button" v-on:click="handle"> 显示 </button> <script> createApp({ data(){ message:'' }, methods:{ handle(){ console.log("ciallo") } } }).mount("#app"); </script>
|
methods表示的是函数与data齐平,用逗号分隔,内部可定义多个函数,同样函数之间是齐平的,用逗号分隔
八个钩子方法自动调用,mounted()在vue挂载完毕接管区域的时候自动调用类似于构造函数
Ajax
异步的js和xml(可扩展的标记语言)
作用:通过Ajax可以给服务器发送请求并获得响应数据
异步交互:指在不重新加载整个页面的情况下与服务器交换数据并更新部分页面
1 2 3 4 5 6 7 8 9 10
| axios({ method:'GET', url:'https://www.baidu.com', data:POST请求数据 params:GET请求数据的url参数?key=val }).then((result) => { consloe.log(result.data); }).catch((err) => { alert(err); });
|
MAVEN
方便快捷的管理项目依赖的资源(jar包)
pom.xml是maven的配置文件
1 2 3 4 5 6 7
| <dependencies> <depedency> <groupId>commoms-io</groupId> <artifactId>commons-io</artifactId> <version>2.11.0</version> </depedency> </dependencies>
|
1 2 3
| <groupId>com.example</groupId>//项目组织名 <artifactId>web-demo</artifactId>//项目名 <version>1.0-SNAPSHOT</version>//项目版本
|
1 2 3 4 5
| <properties> <maven.compiler.source>1.8</maven.compiler.source>//项目使用的jdk <maven.compiler.target>1.8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>//项目的字符集 </properties>
|
标准化的自动化的项目构建方式
Lifecycle/compile一键编译
Lifecycle/package一键打包
提供一套统一标准的项目结构
MAVEN坐标
资源的唯一标识,可以通过坐标定位资源位置
groupId:定义当前Maven项目的组织名
artifactId:定义当前Maven项目名称
version:定义当前项目的版本号
SNAPSHOT:不稳定的快照版本
RELEASE:稳定的发行版本