一、JS

alert(' .... ') //弹出框

console.log(' ....... ') //输出到控制台浏览器

JS引入方式:1、内部脚本:将JS代码定义在HTML页面中位于<script></script>标签之间

                       2、外部脚本:将JS代码写在外部JS文件中,在HTML页面中使用

                                <script src = ' ./js/eventDemo.js'></script>引入      (src就是js的地址)

在js中引入其他js:import { printLog } from "地址",{ }中间是其他js文件中的函数,这就是模块化JS

要想使用JS文件中的函数:1、这个函数必须加上export 关键字

                                            2、在html页面中,必须加上type=”module“代表使用的时模块化的js

html中:
<script src = "js/eventDemo.js" type="module"> 
</script>eventDemo.js:
import {printlog} from "./utils.js" ;//click: 鼠标点击事件document.querySelector('#b2').addEventListener('click', () => {printlog("我被点击了...");})utils.js:
//export使代码能被别的地方使用
export function printlog(msg){console.log(msg);
}

1、函数

函数:是被设计用来执行特定任务的代码块,方便程序的封装复用。

通过function关键字进行定义,语法:

  //1. 函数的定义-具名函数function add(a, b) {return a + b;}let sum = add(10, 20);alert(sum); //2. 函数的定义-匿名函数//2.1 函数表达式let add = function(a,b){return a-b;}let result = add(20,10);alert(result);//2.2 箭头函数let add = (a , b)=> { return a + b;}let result = add(100,200);alert(result);

2、自定义对象

let 对象名 = {属性名1:属性值1,属性名2:属性值2,属性名3:属性值3,方法名: function (形参列表) { }}如:let user = {name: 'Tom',age: '18',gender: '男',sing: function () {alert(this.name + '悠悠地唱着最炫的民族风')}//方法简化方式:sing() {alert(this.name+'唱着最炫的民族风')}
}调用格式:对象名.属性名;
对象名.方法名();console.log(user.name);
user.sing();

注:在自定义对象时尽量不要使用箭头函数,因为箭头函数中的this并不指向当前对象,而是指向当前对象的父级对象。

3、JSON

JSON.stringify (...) 将JS对象转为JSON格式的字符串

JSON.parse (...) JSON格式的字符串转为JS中的对象 

    let user = {name: 'Tom',age: '18',gender: '男',sing() {alert(this.name + '悠悠地唱着最炫的民族风');}}//js对象——>json字符串(JSON.stringify)alert(JSON.stringify(user));//json字符串——>js对象(JSON.parse)  let personJson = '{"name":"Tom","age":"18","gender":"男"}';alert(JSON.parse(personJson).name);

4、DOM

将HTML文件中,所有的元素都封装成了JS对象,采用面向对象的方式来操作页面中的所有的元素。

Document:整个文档对象    整个HTML

ELement:元素对象             每一个html的标签都会封装成一个元素对象 <html> <head> <body>等

Attribute:属性对象              如 href等属性

Text:文本对象                     文本内容

Comment:注释对象            注释

DOM操作核心思想:将网页中所有的元素当作对象来处理。

操作步骤:

  • 获取要操作的DOM元素对象
  • 操作DOM对象的属性或方法(查看文档或AI)   

document.querySelector('选择器') 根据css选择器来获取匹配到的第一个元素

document.querySelectorAll('选择器')                             获取匹配到的所有元素

5、事件监听

语法:事件源.addEventListener('事件类型',事件触发执行的函数);

三要素:事件源:哪个DOM元素触发了事件

              事件类型:用什么方式触发,比如:鼠标单击 click

              事件触发执行的函数:要做什么事

 <input type="button" id="btn1" value="点我一下试试1"><input type="button" id="btn2" value="点我一下试试2"><script>//事件监听,可以多次绑定同一事件document.querySelector('#btn1').addEventListener('click', function () {alert('试试就试试');});document.querySelector('#btn1').addEventListener('click', function () {alert('我还就得试试就试试');});</script>

常见事件:

  • click:鼠标点击
  • mouseenter:鼠标移入
  • mouseleave:鼠标移出

  • keydown:键盘按下触发
  • keyup:键盘抬起触发

  • focus:获得焦点触发
  • blur:失去焦点触发

  • input:用户输入时触发
  • submit:表单提交时触发

二、Vue3 

Vue是一款用于构建用户界面的渐进式的JavaScript框架。

1、使用Vue

  • 引入Vue模块
  • 创建Vue程序的实例化,控制视图的元素
  • 准备元素,被Vue控制
<body><div id="app"><!-- {{}}插值表达式渲染数据 --><h1>{{message}}</h1><h1>{{count}}</h1></div><script type="module">//引入模块import { createApp, ref } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js';//创建应用实例(调用createApp函数,在里面传递一个对象{})createApp({// 准备数据//对象中声明方法data,之后声明方法的返回值,返回值就是所要定义的数据 ,要返回对象,返回值就是对象,对象中声明变量,变量的值就是数据 */data() {return {count: 100,message: 'Hello Vue!'}},}).mount('#app');/* 作用:创建的createApp实例,接管了id为"app"的div标签 */</script>

2、常用指令

v-for :  <tr v-for="(item, index) in items" :key="item.id">{{item}}</tr>

  • item 为遍历的数组
  • item 为遍历出来的元素
  • index 为索引/下标 从0开始;可以省略 省略index语法:v-for = " item in items" 
  • key:给元素添加唯一标识,便于vue进行列表项的正确排序复用,提升渲染性能,推荐使用id作为key。

v-bind:    v-bind:属性名=“属性值”  

     简化::属性名= “属性值”

v-if:      v-if=" 表达式 "      要么渲染,要么不渲染,不频繁切换的场景

v-show:  v-show = '' 表达式 ''   全都渲染,控制显示与隐藏,用于频繁切换的场景

v-model: v-model = " 变量名 ''

v-on: v-on:事件名 = “方法名”

       简写: @事件名 = “ ... ”

 <!-- 表格主体内容 --><tbody><!-- 想让哪个标签循环展示多次,就在哪个标签上使用v-for指令 --><tr v-for="(e, index) in empList" :key="e.id"><td>{{index + 1}}</td><td>{{e.name}}</td><td>{{e.gender ==1?'男' : '女'}}</td><!-- 插值表达式不能出现在标签内部 --><!-- <td><img class="avatar" src="{{e.image}}" alt="{{e.name}}"></td> --><td><img class="avatar" v-bind:src="e.image" :alt="e.name"></td><!-- v-if 控制元素的显示与隐藏 --><td><span v-if="e.job == 1">班主任</span><span v-else-if="e.job == 2">讲师</span><span v-else-if="e.job == 3">学工主管</span><span v-else-if="e.job == 4">教研主任</span><span v-else-if="e.job == 5">咨询师</span><span v-else>其他</span></td><!-- v-show 控制元素的显示与隐藏<td><span v-show="e.job == 1">班主任</span><span v-show="e.job == 2">讲师</span><span v-show="e.job == 3">学工主管</span><span v-show="e.job == 4">教研主任</span><span v-show="e.job == 5">咨询师</span></td> --><td>{{e.entrydate}}</td><td>{{e.updatetime}}</td><td class="action-buttons"><button type="button">编辑</button><button type="button">删除</button></td></tr></tbody></table>
//使用v-model分别将数据双向绑定
<input type="text" id="name" name="name" v-model="searchForm.name" placeholder="请输入姓名">
<select id="gender" name="gender" v-model="searchForm.gender">
<select id="position" name="position" v-model="searchForm.job"><button type="button" v-on:click="search">查询</button><button type="button" @click="clear">清空</button><script type="module">import { createApp } from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'//创建应用实例(调用createApp函数,在里面传递一个对象{})createApp({ // 准备数据data() {return {searchForm: {//定义数据模型,采集员工搜索表单数据   ,是一个对象name: '',gender: '',job: ''}}},//声明methods属性,在里面定义方法methods: {//方法search(){//将搜索条件,输出到控制台console.log(this.searchForm);},clear(){this.searchForm = {name: '',gender: '',job: ''}}}</script>

createApp中data是声明数据的

                    与data平级的method: {} 是定义方法。

三、Ajax

作用:通过ajax可以向服务器端发送请求,并获取服务器响应的数据。

           异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。

<body><input type="button" value="获取数据GET" id="btnGet"><input type="button" value="操作数据POST" id="btnPost"><script src="js/axios.js"></script> //这里的js是已经提供的,所以自己引入官方js文件<script>//发送GET请求document.querySelector('#btnGet').addEventListener('click', () => {///* 事件监听器 */axios({method: 'GET',url: 'https://mock.apifox.cn/m1/3083103-0-default/emps/list',}).then((result) => {  //成功回调函数console.log(result.data);  }).catch((error) => {   //失败回调函数console.log(error);})})//发送POST请求document.querySelector('#btnPost').addEventListener('click', () => {axios({method: 'POST',url: 'https://mock.apifox.cn/m1/3083103-0-default/emps/update',data: 'id=1'  //post请求方式,请求体的数据}).then((result) => {   //成功回调函数console.log(result.data);}).catch((error) => {   //失败回调函数console.log(error);})})</script>
</body>

另一种写法(推荐写法):

axios.请求方式(url [,data[,config]])

<body><input type="button" value="获取数据GET" id="btnGet"><input type="button" value="操作数据POST" id="btnPost"><script src="js/axios.js"></script><script>//发送GET请求document.querySelector('#btnGet').addEventListener('click', () => {axios.get(' https://mock.apifox.cn/m1/3083103-0-default/emps/list').then((result) => {console.log(result.data);}).catch((error) => {console.log(error);})console.log('++++++++++++++++++++++++++++');})//发送POST请求document.querySelector('#btnPost').addEventListener('click', () => {axios.post('https://mock.apifox.cn/m1/3083103-0-default/emps/update', 'id=1').then((result) => {console.log(result.data);}).catch((error) => {console.log(error);})})</script>
</body>

使用async & await使异步变为同步

await关键字只在async函数内有效,await关键字取代then函数,就不用写成功失败回调了。

  methods: {//方法async search() { //async(加在search前) + await(加在axios请求服务器前)让异步操作变为同步//让异步变成同步操作,即会等待服务器响应let result = await axios.get(`https://web-server.itheima.net/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`)this.empList = result.data.data }

 Vue生命周期

生命周期八个阶段:每触发一个生命周期事件,会自动执行一个生命周期方法(钩子方法)

声明与生命周期相关的钩子方法,需要与data,method 平级,

必须掌握的 mounted  在这个方法中可以发送请求,获取数据,用于加载就查询一次

 //钩子函数mounted(){//当页面加载完成后,自动调用search方法this.search();}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/90436.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/90436.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/90436.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何解决pip安装报错ModuleNotFoundError: No module named ‘notebook’问题

【Python系列Bug修复PyCharm控制台pip install报错】如何解决pip安装报错ModuleNotFoundError: No module named ‘notebook’问题 一、摘要 在使用 PyCharm 进行 Python 开发时&#xff0c;常常需要通过 pip install 安装第三方包。但有时即便已经安装成功&#xff0c;运行代…

一、Vue概述以及快速入门

什么是VueVue的快速入门代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue快速入门</title><script src"js/vue.js"></script> </head> <bod…

模型的存储、加载和部署

定义损失函数并以此训练和评估模型 存储模型可以只存储state_dict或模型参数&#xff0c;每当需要部署经过训练的模型时&#xff0c;创建模型的对象并从文件中加载参数&#xff0c;这是 Pytorch 创建者推荐的方法。 目录 模型的存储、加载 模型的部署 模型的存储、加载 承接…

Java学习第七十部分——微服务架构

目录 一、前言提要 二、核心优势 三、核心技术栈 四、构建步骤 五、困难挑战 六、总结归纳 一、前言提要 Java 微服务架构是一种使用 Java 技术栈构建分布式系统的方法论&#xff0c;它将单一的大型应用程序分解为一组小型、独立、松耦合、可独立部署和扩展的服务。每个服…

六边形滚动机器人cad【7张】三维图+设计书明说

摘 要 机械制造业是国家的重要产业,随着时代的发展,智能化越来越在生活中变得普遍,工业的发展深深的影响着一个国家的经济发展。全球经济的发展带领着机械工业在不断的进步。随着国外先进技术在我国的传播,也影响着我国技术的发展,在全球经济的大环境的推动下,大型四边形…

人形机器人加快先进AI机器人开发

物理AI的新时代通用人形机器人专为快速适应现有的以人类为中心的城市和工业工作空间而构建&#xff0c;用以承担枯燥、重复性或对体力要求高的工作任务。这些机器人正在从工厂车间走向医疗健康机构&#xff0c;通过自动化帮助人类工作&#xff0c;缓解劳动力短缺问题。但是&…

AI 驱动开发效能跃升:企业级智能开发全流程优化方案​

企业软件开发正面临 “三高困境”&#xff1a;需求变更频率高、人力成本占比高、线上故障风险高。破解这些难题的核心在于构建 AI 驱动的全流程智能开发体系&#xff0c;通过系统化效能优化实现开发能力升级。​ 需求分析作为开发起点&#xff0c;常因理解偏差导致后期返工。A…

时序数据库 TDengine × Ontop:三步构建你的时序知识图谱

在做设备预测性维护或能源管理分析时&#xff0c;你是否也曾思考过&#xff1a;如何才能让机器“理解”我们收集的大量时序数据&#xff1f;工业现场的数据是结构化的&#xff0c;而语义分析、知识推理却往往需要 RDF 等图谱格式。换句话说&#xff0c;“会说话”的数据更聪明&…

Android启动图不拉伸且宽占满屏幕

Android启动图不拉伸且宽占满屏幕 一般启动图的做法&#xff1a; start_app_bg.xml <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"><item><shape>&l…

rust-方法语法

方法语法 方法类似于函数&#xff1a;我们用 fn 关键字和一个名称来声明它们&#xff0c;它们可以有参数和返回值&#xff0c;并且包含一些在从其他地方调用该方法时运行的代码。与函数不同&#xff0c;方法是在结构体&#xff08;或枚举、trait 对象&#xff0c;分别在第6章和…

【C++】C++ 的入门语法知识1

本文主要讲解C语言的入门知识&#xff0c;包括命名空间、C的输入与输出、缺省参数以及函数重载。 目录 1 C的第一个程序 2 命名空间 1&#xff09; 命名空间存在的意义 2&#xff09; 命名空间的定义 3&#xff09; 命名空间的使用 3 C的输出与输入 1&#xff09; C中…

SpringBoot6-10(黑马)

JWT令牌简介&#xff1a;1.JWT全称:JSON Web Token(https://iwt.io/)定义了一种简洁的、自包含的格式&#xff0c;用于通信双方以json数据格式安全的传输信息。2.组成: >第一部分:Header(头)&#xff0c;记录令牌类型、签名算法等。例如:("alg":“HS256",“t…

智能制造场景195个术语的16个分类

说明&#xff1a;《智能制造典型场景参考指引&#xff08;2025年版&#xff09;》日前&#xff0c;由工信部办公厅正式发布&#xff0c;将成为众多制造型企业的工作纲领 1. 工厂数字化规划设计&#xff08;1.1&#xff09;&#xff1a;在电脑上用专业软件设计工厂布局、规划生产…

[论文阅读] 人工智能 + 软件工程 | 微信闭源代码库中的RAG代码补全:揭秘工业级场景下的检索增强生成技术

微信闭源代码库中的RAG代码补全&#xff1a;揭秘工业级场景下的检索增强生成技术 论文标题&#xff1a;A Deep Dive into Retrieval-Augmented Generation for Code Completion: Experience on WeChatarXiv:2507.18515 A Deep Dive into Retrieval-Augmented Generation for Co…

RabbitMQ—仲裁队列

上篇文章&#xff1a; RabbitMQ集群搭建https://blog.csdn.net/sniper_fandc/article/details/149312481?fromshareblogdetail&sharetypeblogdetail&sharerId149312481&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 Raft一致性算法…

[2025CVPR-目标检测方向] CorrBEV:多视图3D物体检测

1. ​研究背景与动机​ 论文关注自动驾驶中相机仅有的多视图3D物体检测&#xff08;camera-only multi-view 3D object detection&#xff09;问题。尽管基于鸟瞰图&#xff08;BEV&#xff09;的建模近年来取得显著进展&#xff08;如BEVFormer和SparseBEV等基准模型&#xf…

oracle 数据库批量变更数据 将a表字段批量更新为b表字段

需求&#xff1a;将excel表中的数据批量更新到 taccoinfo表中vc_broker字段0、备份&#xff1a;create table taccoinfo0724 as select vc_custno ,vc_broker from taccoinfo 1、创建临时表&#xff1a; create table taccoinfo0724_1 as select vc_custno ,vc_broker from…

vim-xcode 项目常见问题解决方案

vim-xcode 项目常见问题解决方案 项目基础介绍 vim-xcode 是一个开源项目&#xff0c;旨在通过 Vim 编辑器与 Xcode 项目进行交互。该项目允许开发者在 Vim 中直接构建、测试和运行 Xcode 项目&#xff0c;从而提高开发效率。vim-xcode 主要使用 Vimscript 编写&#xff0c;并依…

个性化网页计数器

需要一个服务器环境来存放我们的计数器脚本和数据库。对于初学者来说&#xff0c;PHP和MySQL是一个不错的组合&#xff0c;因为它们易于学习且广泛应用。接下来&#xff0c;我们开始编写PHP脚本。这个脚本的主要任务是接收来自网页的请求&#xff0c;并将访问信息存储到数据库中…

详解力扣高频SQL50题之1683. 无效的推文【入门】

传送门&#xff1a;1683. 无效的推文 题目 表&#xff1a;Tweets ----------------------- | Column Name | Type | ----------------------- | tweet_id | int | | content | varchar | ----------------------- 在 SQL 中&#xff0c;tweet_id 是这个表的主键。 content 只…