dom操作和axios的基本知识梳理
一、DOM操作
1.选择元素
- document.getElementById(id): 根据元素的ID选择单个元素。
- document.getElementsByClassName(className): 根据类名选择多个元素(返回HTMLCollection)。
- document.getElementsByTagName(tagName): 根据标签名选择多个元素(返回HTMLCollection)。
- document.querySelector(selector): 根据CSS选择器选择单个元素。
- document.querySelectorAll(selector): 根据CSS选择器选择多个元素(返回NodeList)。
2.创建和修改元素
- 创建元素: 使用 - document.createElement(tagName)创建新的元素。
- 设置内容: 使用 - element.textContent或- element.innerHTML设置元素的文本或HTML内容。
- 修改属性: 使用 - element.setAttribute(attributeName, value)修改属性,或者直接访问属性如- element.src。
- 添加类名: 使用 - element.classList.add(className)添加类名,- element.classList.remove(className)移除类名。
3.插入和删除元素
- 插入: - parentElement.appendChild(newElement): 在父元素末尾插入子元素。
- parentElement.insertBefore(newElement, referenceElement): 在指定元素前插入新元素。
 
- 删除: - parentElement.removeChild(childElement): 从父元素中删除子元素。
- element.remove(): 删除自身元素。
 
4.样式操作
- element.style.propertyName: 直接修改内联样式。
- element.classList.toggle(className): 切换类名,从而改变样式。
二、常见事件处理
1.事件监听
- element.addEventListener(event, function): 为元素添加事件监听器,可以添加多个监听器。
- element.removeEventListener(event, function): 移除事件监听器。
2.常见事件类型
- 鼠标事件: - click: 鼠标点击事件。
- dblclick: 双击事件。
- mouseover/- mouseout: 鼠标移入/移出事件。
 
- 键盘事件: - keydown: 按键按下事件。
- keyup: 按键抬起事件。
 
- 表单事件: - submit: 表单提交事件。
- change: 表单元素值变化事件。
 
- 窗口事件: - load: 页面或资源加载完成事件。
- resize: 窗口大小变化事件。
 
3.事件对象
- 在事件处理函数中,可以访问事件对象(通常命名为 - event),它包含关于事件的详细信息,如- event.target(事件目标)、- event.type(事件类型)等。
4.事件冒泡和捕获
- 事件冒泡: 事件从目标元素向上冒泡到其父元素。 
- 事件捕获: 事件从顶层元素向下传播到目标元素。在 - addEventListener中可以通过第三个参数设置为- true启用捕获。
三、axios的基本操作
Axios 支持多种 HTTP 请求方法,如 GET、POST、PUT、DELETE 等
1.数据的请求和上传
axios({
  url: '目标资源地址',
  method: '请求方法',
  data: {
    参数名: 值
  }
}).then(result => {
  // 对服务器返回的数据做后续处理
})其中url为获取资源的目标地址,method为请求 方法,常见的有GET、POST、PUT、DELETE 等,其中默认为get方法,可以不写。在使用需要传参的方法时data为上传的数据。
2.axios 错误处理
axios({
  // ...请求选项
}).then(result => {
  // 处理成功数据
}).catch(error => {
  // 处理失败错误
})异常捕获通常在 .catch 语句中处理。可以根据错误的状态码进行特定的处理。
axios.get('/endpoint')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      // 请求已发出,但服务器响应状态码不在 2xx 范围内
      console.error('Error Response:', error.response.status);
      console.error('Data:', error.response.data);
    } else if (error.request) {
      // 请求已发出,但没有收到响应
      console.error('Error Request:', error.request);
    } else {
      // 其他错误
      console.error('Error Message:', error.message);
    }
  });