前端-HTML+CSS+JavaScript+Vue+Ajax概述

HTML(超文本標記語言)常見標簽

<html><head>
<title>這是標題的內容,顯示在瀏覽器的頭部</title></head><body><!-- 這里面的內容在瀏覽器顯示給用戶看  --><!-- h1 -> h6 : 標題從大到小 --><!-- 圖片標簽 img src  --><img src = ""><!-- 超鏈接標簽  a  href --><a href = "">baidu</a><!-- 橫線標簽--><hr><!-- 換行標簽--><br><!-- 段落標簽--><p>段落標簽測試</p><!-- 表格標簽-->//border邊框<table  border = "1" style = "width:80%"><tr><td>姓名</td><td>性別</td><td>年齡</td></tr><tr><td>張三</td><td>男</td><td>18</td></tr></table><!-- 表單標簽--><form  action = ""  method = ""><input  type = "text"></br>//文本輸入框<input  type = "password"></br>//密碼輸入框<input  type = "radio"></br>//單選框,一般用在男女選項<input  type = "checkbox"></br>//復選框,例如愛好<input  type = "file"></br>//選擇文件<input  type = "button"  value = "按鈕"></br>//按鈕<input  type = "submit"></br>//提交按鈕<input  type = "reset"></br>//重置按鈕//下拉框<select><option>請選擇</option><option>排球</option><option>籃球</option><option>足球</option><select>//文本輸入框,可輸入多行多列<textarea><textarea></form><!-- --><!-- --><!-- --></body>
</html>

CSS(負責網頁的表現,頁面元素的外觀,位置,顏色,大小等)

名稱語法描述示例
行內樣式在標簽內使用style屬性,屬性值是css屬性鍵值對。<h1 style="xxx:xxx;">中國新聞網</h1>
內部樣式定義<style>標簽,在標簽內部定義css樣式。<style> h1 {...} </style>
外部樣式定義<link>標簽,通過href屬性引入外部css文件<link rel="stylesheet" href="css/news.css">

對于上述3種引入方式,企業開發的使用情況如下:

  • 行內樣式:會出現大量的代碼冗余,不方便后期的維護,所以不常用(常配合JS使用)。

  • 內部樣式:通過定義css選擇器,讓樣式作用于當前頁面的指定的標簽上。(可以寫在頁面任何位置,但通常約定寫在head標簽中)

  • 外部樣式:html和css實現了完全的分離,企業開發常用方式。

CSS選擇器

代碼格式

選擇器名   {css樣式名:css樣式值;css樣式名:css樣式值;
}

常用選擇器

選擇器寫法示例示例說明
元素選擇器元素名稱 {...}h1 {...}選擇頁面上所有的<h1>標簽
類選擇器.class屬性值 {...}.cls {...}選擇頁面上所有class屬性為cls的標簽
id選擇器#id屬性值 {...}#hid {...}選擇頁面上id屬性為hid的標簽
分組選擇器選擇器1,選擇器2{...}h1,h2 {...}選擇頁面上所有的<h1>和<h2>標簽
屬性選擇器元素名稱[屬性] {...}input[type] {...}選擇頁面上有type屬性的<input>標簽
元素名稱[屬性名="值"] {...}input[type="text"] {...}選擇頁面上type屬性為text的<input>標簽
后代選擇器元素1元素2{...}form input {...}選擇<form>標簽內的所有<input>標簽

JavaScript (負責網頁的交互)

是一門跨平臺,面向對象的腳本語言(不用編譯的語言)

組成:

  • ECMAScript: 規定了JS基礎語法核心知識,包括變量、數據類型、流程控制、函數、對象等。

  • BOM:瀏覽器對象模型,用于操作瀏覽器本身,如:頁面彈窗、地址欄操作、關閉窗口等。

  • DOM:文檔對象模型,用于操作HTML文檔,如:改變標簽內的內容、改變標簽內字體樣式等。

JS引入方式

第一種:內部引用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS 引入方式</title>
</head>
<body><!-- 內部腳本--><script>alert('Hello JS')</script>
</body>
</html>

第二種:外部腳本

?1.在js目錄下,定義一個js文件demo.js,在文件中編寫js代碼,如下:

alert('Hello JS')

2.在html文件中,通過<script></script>引入js文件demo.js,如下:

<script src="js/demo.js"></script>
  • 注意1:demo.js中只有js代碼,沒有<script>標簽

  • 注意2:通過<script></script>標簽引入外部JS文件時,標簽不能自閉合,如:<script src="js/demo.js" />

JS基礎語法

1.變量

是弱類型語言,用let聲明即可

<script>//變量let a = 20;a = "Hello";alert(a);
</script>
2.常量

在JS中,如果聲明一個場景,需要使用const關鍵字。一旦聲明,常量的值就不能改變 (不可以重新賦值)。

<body><script>//常量const PI = 3.14;PI = 3.15;alert(PI);</script>
</body>
3.數據類型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS-數據類型</title>
</head>
<body><script>//原始數據類型alert(typeof 3); //numberalert(typeof 3.14); //numberalert(typeof "A"); //stringalert(typeof 'Hello');//stringalert(typeof true); //booleanalert(typeof false);//booleanalert(typeof null); //object var a ;alert(typeof a); //undefined</script>
</body>
</html>
4.函數

方式一

<!-- 格式 -->
function 函數名(參數1,參數2..){要執行的代碼
}<!-- 示例-->
function add(a, b){return a + b;
}
<!--如果要調用上述的函數add,可以使用:函數名稱(實際參數列表)-->
let result = add(10,20);
alert(result);
<!--我們在調用add函數時,再添加2個參數,修改代碼如下:-->
var result = add(10,20,30,40);
alert(result);

方式二

<!--  示例一(函數表達式)-->
<!--  是被設計用來執行特定任務的代碼塊,方便程序的封裝復用-->
let add = function (a,b){    //參數可以有多個return a + b;            //要執行的代碼
}<!--  示例二(箭頭函數)-->
let add = (a,b) => {return a + b;
}<!--上述匿名函數聲明好了之后,是將這個函數賦值給了add變量。 那我們就可以直接通過add函數直接調用,調用代碼如下:-->
let result = add(10,20);
alert(result);
5.流程控制

和Java一樣

- if ... else if ... else ...
- switch
- for
- while
- do ... while

JS DOM

將標記語言的各個組成部分封裝成為對象

- Document:整個文檔對象
- Element:元素對象
- Attribute:屬性對象
- Text:文本對象
- Comment:注釋對象

?

作用

- 改變 HTML 元素的內容
- 改變 HTML 元素的樣式(CSS)
- 對 HTML DOM 事件作出反應
- 添加和刪除 HTML 元素

示例

<body>
<h1  id = "title1">1111</h1>
<h1>22222</h1>
<h1>333333</h1><script>
<!--  修改第一個標簽中的內容-->
<!--  1.獲取DOM對象-->let h1 =  document.querySelect('#title1') <!--  2.調用DOM中的對象或者方法-->h1.innerHTML = '修改后的文本內容';</script>
</body>

JS事件監聽

<!--  語法-->
事件源.addEventListener('事件類型', 要執行的函數);<!--  示例-->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS-事件-事件綁定</title>
</head><body><input type="button" id="btn1" value="點我一下試試1"><input type="button" id="btn2" value="點我一下試試2"><script>document.querySelector("#btn1").addEventListener('click', ()=>{alert("按鈕1被點擊了...");})</script>
</body>
</html>

在上述的語法中包含三個要素:

  • 事件源: 哪個dom元素觸發了事件, 要獲取dom元素

  • 事件類型: 用什么方式觸發, 比如: 鼠標單擊 click, 鼠標經過 mouseover

  • 要執行的函數: 要做什么事

常見事件

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>JS-事件-常見事件</title>
</head><body><form action="" style="text-align: center;"><input type="text" name="username" id="username"><input type="text" name="age" id="age"><input id="b1" type="submit" value="提交"><input id="b2" type="button" value="單擊事件"></form><br><br><br><table width="800px" border="1" cellspacing="0" align="center"><tr><th>學號</th><th>姓名</th><th>分數</th><th>評語</th></tr><tr align="center"><td>001</td><td>張三</td><td>90</td><td>很優秀</td></tr><tr align="center" id="last"><td>002</td><td>李四</td><td>92</td><td>優秀</td></tr></table><script>//click: 鼠標點擊事件document.querySelector('#b2').addEventListener('click', () => {console.log("我被點擊了...");})//mouseenter: 鼠標移入document.querySelector('#last').addEventListener('mouseenter', () => {console.log("鼠標移入了...");})//mouseleave: 鼠標移出document.querySelector('#last').addEventListener('mouseleave', () => {console.log("鼠標移出了...");})//keydown: 某個鍵盤的鍵被按下document.querySelector('#username').addEventListener('keydown', () => {console.log("鍵盤被按下了...");})//keydown: 某個鍵盤的鍵被抬起document.querySelector('#username').addEventListener('keyup', () => {console.log("鍵盤被抬起了...");})//blur: 失去焦點事件document.querySelector('#age').addEventListener('blur', () => {console.log("失去焦點...");})//focus: 元素獲得焦點document.querySelector('#age').addEventListener('focus', () => {console.log("獲得焦點...");})//input: 用戶輸入時觸發document.querySelector('#age').addEventListener('input', () => {console.log("用戶輸入時觸發...");})//submit: 提交表單事件document.querySelector('form').addEventListener('submit', () => {alert("表單被提交了...");})</script>
</body></html>

?Ajax

  • 與服務器進行數據交換:通過Ajax可以給服務器發送請求,并獲取服務器響應的數據。

  • 異步交互:可以在不重新加載整個頁面的情況下,與服務器交換數據并更新部分網頁的技術,如:搜索聯想、用戶名是否可用的校驗等等。

步驟:

引入Axios的js文件(參照官網)

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

使用Axios發送請求,并獲取響應結果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Axios入門程序</title>
</head>
<body><button id="getData">GET</button><button id="postData">POST</button><script src="https://unpkg.com/axios/dist/axios.min.js"></script><script>//GET請求document.querySelector('#getData').onclick = function() {axios({
<!--  請求路徑 -->url:'https://mock.apifox.cn/m1/3083103-0-default/emps/list',
<!--  請求方式 -->method:'get'}).then(function(res) {  //.then成功回調函數(就是前端發送給服務器,服務器返回給前端后執行的函數)console.log(res.data);}).catch(function(err) {  //.catch失敗回調函數console.log(err);})}//POST請求document.querySelector('#postData').onclick = function() {axios({url:'https://mock.apifox.cn/m1/3083103-0-default/emps/update',method:'post'}).then(function(res) {console.log(res.data);}).catch(function(err) {console.log(err);})}</script>
</body>
</html>
請求方法別名
方法描述
axios.get(url [, config])發送get請求
axios.delete(url [, config])發送delete請求
axios.post(url [, data[, config]])發送post請求
axios.put(url [, data[, config]])發送put請求

如果使用axios中提供的.then(function(){....}).catch(function(){....}),這種回調函數的寫法,會使得代碼的可讀性和維護性變差。 而為了解決這個問題,我們可以使用兩個關鍵字,分別是:async、await

可以通過async、await可以讓異步變為同步操作。async就是來聲明一個異步方法,await是用來等待異步任務執行。

修改前:

search() {//基于axios發送異步請求,請求https://web-server.itheima.net/emps/list,根據條件查詢員工列表axios.get('https://web-server.itheima.net/emps/list', {params: this.searchEmp}).then(res => {this.empList = res.data.data})},

?修改后

  async search() {//基于axios發送異步請求,請求https://web-server.itheima.net/emps/list,根據條件查詢員工列表const result = await axios.get('https://web-server.itheima.net/emps/list', {params: this.searchEmp});this.empList = result.data.data;},

注意:

await只能出現在async里面

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/80044.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80044.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/80044.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

嵌入式軟件--stm32 DAY 5 USART串口通訊(上)

前邊我們學的都是通用的功能&#xff0c;例如GPIO、中斷&#xff0c;現在我們要學習的是某一個特定的功能。典型的就是通訊功能。其中&#xff0c;最簡單的通訊協議就是串口了。 一、串口_通訊基礎知識 1.1 串行與并行 按數據傳送的方式分類的。 串行通信一位一位傳輸&…

c++混淆工具Hikari-LLVM15-llvm-18.1.8rel編譯安裝

目錄 1. windows 編譯1. 2 編譯工具安裝1.2.1 下載w64devkit1.2.2 添加環境變量1.2.3 驗證一下 1.3 下載llvm-18.1.8rel1.4 編譯 2. Android studio增加混淆編譯2.1 替換NDK中clang2.2 配置混淆編譯項 3. Linux編譯安裝4. Linux下增加混淆編譯4.1 在CMakeLists.txt中設置clang編…

【EasyPan】loadDataList方法及checkRootFilePid方法解析

【EasyPan】項目常見問題解答&#xff08;自用&持續更新中…&#xff09;匯總版 一、loadDataList方法概覽 /*** 文件列表加載接口* param session HTTP會話對象* param shareId 必須參數&#xff0c;分享ID&#xff08;使用VerifyParam進行非空校驗&#xff09;* param …

Vue3渲染引擎:虛擬DOM與響應式原理

Vue3渲染引擎&#xff1a;虛擬DOM與響應式原理 在當今的前端開發中&#xff0c;Vue.js作為一種流行的JavaScript框架&#xff0c;經常被用來構建用戶界面。而Vue.js 3作為其最新版本&#xff0c;在性能和功能上進行了許多優化和改進。其中&#xff0c;Vue3渲染引擎的核心原理—…

【論文閱讀】Attentive Collaborative Filtering:

Attentive Collaborative Filtering: Multimedia Recommendation with Item- and Component-Level Attention Attentive Collaborative Filtering (ACF)、隱式反饋推薦、注意力機制、貝葉斯個性化排序 標題翻譯&#xff1a;注意力協同過濾&#xff1a;基于項目和組件級注意力的…

【PostgreSQL數據分析實戰:從數據清洗到可視化全流程】2.1 數據查詢基礎(SELECT/WHERE/GROUP BY/HAVING)

?? 點擊關注不迷路 ?? 點擊關注不迷路 ?? 點擊關注不迷路 文章大綱 第2章 SQL語法進階:數據查詢基礎(SELECT/WHERE/GROUP BY/HAVING)2.1 數據查詢基礎2.1.1 SELECT 語句:從表中提取數據2.1.1.1 基礎語法與列選擇2.1.1.2 列別名與表達式2.1.1.3 去重與排序2.1.2 WHERE…

深度解析:基于Python的微信小程序自動化操作實現

引言 在當今數字化時代&#xff0c;自動化技術正在改變我們與軟件交互的方式。本文將深入解析一個使用Python實現的微信小程序自動化操作腳本&#xff0c;該腳本能夠自動識別屏幕上的特定圖像并執行點擊操作。這種技術在自動化測試、批量操作和效率工具開發中有著廣泛的應用前…

layui下拉框輸入關鍵字才出數據

html里這樣放 <div class"layui-form-item"><label class"layui-form-label">合同方&#xff1a;</label><div class"layui-input-block rightinline"><input type"text" name"select_text" ids…

bash和zsh的區別

Bash&#xff08;Bourne-Again SHell&#xff09;和 Zsh&#xff08;Z Shell&#xff09;都是 Unix/Linux 系統中的主流 Shell&#xff0c;但它們在功能、配置和用戶體驗上有顯著區別。以下是兩者的詳細對比&#xff1a; 1. 歷史與兼容性 特性BashZsh誕生時間1989 年&#xff…

組件通信-v-model

概述&#xff1a;實現 父?子 之間相互通信。 前序知識 —— v-model的本質 <!-- 使用v-model指令 --> <input type"text" v-model"userName"><!-- v-model的本質是下面這行代碼 --> <input type"text" :value"use…

虛擬機(Virtual Machine, VM)的簡單介紹

目錄 一、虛擬機的基本概念 二、虛擬化技術的分類 三、虛擬機的核心架構 四、虛擬機的核心應用場景 五、虛擬機的優缺點分析 六、虛擬機與容器技術的對比 七、虛擬機的未來趨勢 八、總結 一、虛擬機的基本概念 虛擬機&#xff08;VM&#xff09;是一種通過軟件模擬的完…

Xcode16提交App Store審核時提示bitcode報錯

提交AppStore時出現bitcode報錯&#xff0c;內容如下&#xff1a; Upload was cancelled. 2025-04-30 02:15:48.349 [ContentDelivery.Uploader.600000DB4380] Show Progress: Upload failed. Validation failed Invalid Executable. The executable Blockolot.app/Frameworks/…

Flutter TabBar / TabBarView 詳解

目錄 一、引言 二、基本用法 代碼解析 三、主要屬性 3.1 TabBar 3.2 TabBarView 四、進階定制&#xff1a;突破默認樣式 4.1 視覺樣式深度定制 4.2 自定義指示器與標簽 4.3 動態標簽管理 五、工程實踐關鍵技巧 5.1 性能優化方案 5.2 復雜手勢處理 5.3 響應式布局…

mathtype轉化

mathtype轉latex 點擊預置 選擇剪切和復制預置 點擊MathML 或 TeX&#xff0c;選擇 LaTeX 2.09 and later mathtype轉word自帶編碼器 與前面都相同&#xff0c;選擇 MathML2.0&#xff08;m namespace&#xff09;

AI檢測的荒謬性:當規則淪為一場概率游戲

當今高校對AI檢測工具的依賴&#xff0c;已經演變成一場標準混亂的鬧劇。有的學校指定格子達&#xff0c;有的迷信維普&#xff0c;而同一篇論文在不同的系統里竟能得出天差地別的結果——在格子達AI檢測率僅12%的文章&#xff0c;放到維普卻可能飆升到60%。這意味著&#xff0…

react-14defaultValue(僅在首次渲染時生效)和value(受 React 狀態控制)

在 React 中&#xff0c;defaultChecked/checked 和 defaultValue/value 是用于處理表單元素初始值和受控值的屬性對。區別在于表單元素是否受 React 組件狀態控制。 1. defaultValue 作用&#xff1a;設置表單元素的初始值&#xff08;僅在首次渲染時生效&#xff09;。特點…

Go語言基礎學習詳細筆記

文章目錄 初步了解Go語言Go語言誕生的主要問題和目標Go語言應用典型代表Go語言開發環境搭建經典HelloWorld 基本程序結構編寫學習變量常量數據類型運算符 條件語句if語句switch 語句 跳轉語句常用集合和字符串數組切片Map實現Set**字符串** 函數**基本使用用例驗證** 面向對象編…

wrod生成pdf。[特殊字符]改背景

import subprocess import os,time from rembg import remove, new_session from PIL import Image import io from docxtpl import DocxTemplate, InlineImage from docx.shared import Inches input_folder ‘tupian’ # 輸入文件夾 kouchu_folder ‘kouchu’ # 去背景圖像…

基于SpringBoot和PostGIS的應急運輸事件影響分析-以1.31側翻事故為例

目錄 前言 一、技術實現路徑 1、需要使用的數據 2、空間分析方法 二、相關模塊設計與實現 1、運輸路線重現開發 2、事故點影響范圍實現 3、WebGIS可視化實現 三、討論 1、界面結果展示 2、影響范圍分析 四、總結 前言 在交通運輸發達的當今社會&#xff0c;應急運輸…

NetBox:運維利器,網絡與數據中心管理平臺

NetBox 詳細介紹&#xff1a;開源 IPAM 和 DCIM 工具的全面解析 1. 引言 在現代網絡和數據中心管理中&#xff0c;基礎設施的復雜性不斷增加&#xff0c;傳統的電子表格或手動記錄方式已無法滿足高效、準確和可擴展的管理需求。NetBox 作為一個開源的 IP 地址管理&#xff08…