从0开始的 Vue 生活

Vue

  • 一、配置环境
    • 1.1 安装node.js
      • 1.1.1 node.js 下载
      • 1.1.2 node.js 安装
      • 1.1.3 node.js 配置
    • 1.2 安装VSCode
      • 1.2.1 VSCode 下载
      • 1.2.2 VSCode 安装
      • 1.2.3 VSCode 配置
  • 二、创建Vue项目
    • 2.1 使用命令行创建Vue项目
    • 2.2 使用VSCode运行Vue项目
    • 2.3 尝试编写Vue项目
      • 2.3.1 准备工作
      • 2.3.2 完成一个小任务
      • 2.3.3 额外练习
      • 2.3.4 加个班,再写一个任务
    • 2.4 Vue 3 启动!
      • 2.4.1 Vue 2 升级为Vue 3
      • 2.4.2 小小改进
      • 2.4.3 响应吧!对象与对象数组

一、配置环境

1.1 安装node.js

1.1.1 node.js 下载

下载地址

点击上面链接,即可访问node.js的官网,如下图:

在这里插入图片描述
点击绿色按钮,下载node.js的安装程序。
在这里插入图片描述

1.1.2 node.js 安装

下载完成后,打开安装程序,会弹出以下面界面,【我下载的版本是node-v20.11.1-x64,建议版本高于10以上】

在这里插入图片描述
点击Next,弹出用户协议界面(经典我不清楚但同意)

在这里插入图片描述
先勾选同意,然后再点击Next,弹出安装路径界面,

在这里插入图片描述
默认是C盘,我的选择是把C盘改为D盘,其他文件路径不变,安装路径要自己可以找的到。
确定完安装路径,点击Next,弹出安装结构界面,

在这里插入图片描述

直接点击Next,弹出下面界面,询问要不要自动安装必须的工具。

在这里插入图片描述

不勾选,直接点击Next,弹出点击安装界面,

在这里插入图片描述

点击Install,弹出正在安装界面

在这里插入图片描述

安装结束后点击Finish即可,到此为止,node.js算是安装成功了。

在这里插入图片描述

安装完成后,根据自己的安装路径,找到node.js的安装位置。

在这里插入图片描述

在该位置,新建node_cachenode_global两个文件夹。

1.1.3 node.js 配置

点击电脑中心或者我的电脑,
在这里插入图片描述

进入电脑中心后,鼠标右击空白处,弹出以下界面。

在这里插入图片描述

点击属性,进入以下界面

在这里插入图片描述

点击高级系统设置,进入下面界面

在这里插入图片描述

点击环境变量,进入下面界面

在这里插入图片描述

在用户变量的框中下滑,找到Path变量,双击Path变量,弹出下面界面

在这里插入图片描述

点击新建,将下面路径输入进去,

D:\Program Files\nodejs\node_global

其中D:\Program Files\nodejs是你的node.js的安装路径,node_global是前面在安装步骤新建的文件夹。
如果node.js的安装路径与我选择的不一样,请将路径替换为自己的node.js的安装路径。

在这里插入图片描述

输入完后点击确定,一定要点击确定,点击取消和右上角的x都是相当于没有做以上步骤。
点击确定后,会退回到以下界面。

在这里插入图片描述

点击系统变量下面的新建,弹出下面界面

在这里插入图片描述

变量名输入:NODE_PATH
变量值输入:D:\Program Files\nodejs\node_modules
其中,D:\Program Files\nodejs是你的node.js的安装路径,node_modules是node.js中的文件夹。
如果node.js的安装路径与我选择的不一样,请将路径替换为自己的node.js的安装路径。

在这里插入图片描述

输入完后点击确定,一定要点击确定,点击取消和右上角的x都是相当于没有做以上步骤。
点击确定后,会退回到以下界面。

在这里插入图片描述

检查一下系统变量是否有前面输入的,如果有,那就点击确定;
如果没有那就是上一步不是点击确定退出来的,而是点击取消或右上角的x退出来的,这种情况重新做上一步即可。
点击确定后,会退回的一下界面

在这里插入图片描述

再次点击确定,环境变量就配置完成了。

接下来,键盘按下Win+R,【Win键就是键盘左下角window图标的那个按键】打开运行界面

在这里插入图片描述

输入cmd,点击确定,进入命令行界面。

在这里插入图片描述
输入node,按下回车,弹出以下界面,则表示node.js安装成功!

在这里插入图片描述

如果没有,则表示安装失败,建议重新按照上面步骤检查一遍,尤其是配置环境变量步骤,看看是不是哪里漏了或者输错了安装路径。

1.2 安装VSCode

1.2.1 VSCode 下载

下载地址

点击上面链接,即可访问VSCode的官网,如下图:

在这里插入图片描述

点击Download for Window,下载VSCode。

在这里插入图片描述

1.2.2 VSCode 安装

下载完后安装即可,安装过程点击下一步,我同意之类的即可,没有什么特别的。
在这里插入图片描述

1.2.3 VSCode 配置

安装完成后打开VSCode,如果觉得字体小,可以按ctrl和+键,可以放大字体,相反,ctrl和-键可以缩小字体。

在这里插入图片描述

点击该按钮,进入扩展工具下载界面

在这里插入图片描述

在搜索框里输入TypeScript Vue Plugin,点击安装【Install】,安装成功后会显示下面界面

在这里插入图片描述

然后在搜索框输入Vue - Official,点击安装【Install】,安装成功后会显示下面界面。

在这里插入图片描述

到此准备工作都结束了。

二、创建Vue项目

2.1 使用命令行创建Vue项目

在D盘创建一个文件夹,用于存放Vue项目,文件夹命名随意,路径不宜太深。

在这里插入图片描述

进入新建的文件夹,在路径处输入cmd,按下回车,进入命令行界面。

在这里插入图片描述

在命令行界面输入 npm config set registry https://registry.npm.taobao.org/,按下回车

【npm是node.js下载时一起下载的包管理工具,用来下载node.js的扩展包。】

在这里插入图片描述

接着输入 npm init vue@latest ,按下回车。

【该命令表示要创建一个Vue项目工程,该命令会根据Vue自己的工程模板,调用Vue的工程创建工具Vite创建一个工程模板。】

等待一段时间,此时可能会报下面错误。

在这里插入图片描述

这时输入 npm config set strict-ssl false ,来关闭npm的SSL验证。

在这里插入图片描述

关闭后再次输入 npm init vue@latest ,按下回车

在这里插入图片描述

按下y,则开始下载。

在这里插入图片描述

等待一段时间,下载结束后,就开始创建项目【如果没有反应,可以按一下回车】

在这里插入图片描述

项目名默认为vue-project,直接按下回车

在这里插入图片描述

询问是否使用TS语法,选择是。

接下来所有选择都选择否和不需要

在这里插入图片描述

所有选择都选择结束后,项目就创建成功,会显示下面界面。

在这里插入图片描述

此时输入cd vue-project,进入vue-project文件夹。

在这里插入图片描述

输入 npm install,就会自动下载项目所需要的扩展包了。

在这里插入图片描述

等待一段时间,下载结束后会显示下面界面。

在这里插入图片描述

此时可以打开前面新建的用于存放Vue项目的文件夹,发现里面多了一个vue-project的文件夹,这个文件夹就是我们建立的Vue项目

在这里插入图片描述

文件夹内部情况如下图:

在这里插入图片描述

2.2 使用VSCode运行Vue项目

打开VSCode,点击打开文件夹

在这里插入图片描述

选择前面建立的Vue项目,

在这里插入图片描述

选择后,就可以看见前面创建的Vue项目的项目结构

在这里插入图片描述

点击终端【英文模式下是 Terminal 】,点击新建终端

在这里插入图片描述

在终端输入 npm run dev ,按下回车

在这里插入图片描述

按住ctrl,鼠标点击连接

在这里插入图片描述

弹出下面界面,则表示Vue项目没有问题

在这里插入图片描述

2.3 尝试编写Vue项目

2.3.1 准备工作

鼠标右击src文件夹,点击删除,将src文件夹删除。【为了方便了解Vue项目,所以先删除src文件夹,然后手动编写src文件夹里面的文件】

在这里插入图片描述

右击空白地方,选择新建文件夹

在这里插入图片描述

新建一个文件夹,命名为src

在这里插入图片描述

在src文件夹下,新建main.ts和APP.vue两个文件,在建立components文件夹

【main.ts是用于写ts脚本,APP.vue是vue程序的主文件,components文件夹用于存放其他Vue组件】

在这里插入图片描述

2.3.2 完成一个小任务

任务显示学生信息
描述显示学生的姓名,年龄,点击按钮可以修改学生的姓名、年龄和联系方式

项目结构

在这里插入图片描述

代码如下:

main.ts 代码

import { createApp } from "vue";
import App from './App.vue'createApp(App).mount('#app');

APP.vue 代码

<template><div class="app"><h1>Hello Vue !</h1><Student/></div>
</template><script lang="ts">// 把Student.vue导入import Student from './components/Student.vue';// 使用Student就定义exportexport default{name:'App',components:{Student}}
</script><style>.app{background-color: aqua;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

Student.vue 代码

<template><div class="student"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showTel">显式联系方式</button></div>
</template><style scoped>.student{background-color: blueviolet;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style><script lang="ts">export default{name:'student',data() {return{name:'张三三',age:18,tel:'1008611'}},methods:{changeAge(){this.age+=1;},changeName(){this.name='李四四';},showTel(){alert(this.tel);},}}
</script>

运行方式如下:

新建Terminal(终端),输入代码:npm run dev

在这里插入图片描述

ctrl+鼠标单击链接

在这里插入图片描述

运行结果如下:

在这里插入图片描述

2.3.3 额外练习

任务显示学校信息
描述显示学校的名字,班级数量,所在地址,老师的数量、学生数量

在components文件夹下新建一个School.vue 文件,按照任务描述编写代码

<template><div class="school"><h2>名字:{{ name }}</h2><h2>班级数量:{{ count }}</h2><h2>所在地址:{{ addr }}</h2><h2>老师数量:{{ t_count }}</h2><h2>学生数量:{{ s_count }}</h2></div></template><script lang="ts">export default{name:'school',data() {return{name:'福州大学',count:40,addr:'福建省福州市xxxxx',t_count:10000,s_count:1000000}},methods:{}}
</script><style scoped>
.school{background-color: blueviolet;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

然后在App.vue 文件中引入School.vue ,然后使用该组件

<template><div class="app"><h1>Hello Vue !</h1><Student/><School/>	// 使用School.vue组件</div>
</template><script lang="ts">// 把Student.vue导入import Student from './components/Student.vue';// 把School.vue导入import School from './components/School.vue';// 使用Student,School就定义exportexport default{name:'App',components:{Student,School}}</script><style>.app{background-color: aqua;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

按照上次运行方式,再次运行,运行结果如下:

在这里插入图片描述

2.3.4 加个班,再写一个任务

任务显示注册界面
描述显示注册界面,包括用户名,密码,再次输入密码,注册按钮

在components文件夹下新建一个Login.vue 文件,按照任务描述编写代码

<template><body><form action="/register" method="post"><fieldset><legend>注册</legend><label>用户名:</label><input type="text" name="user" required><br><label>密码:</label><input type="text" name="pwd" required><br><label>再次输入密码:</label><input type="text" name="pwd2" required><br><input type="submit" value="注册"></fieldset></form></body>
</template><script lang="ts">export default{name:'Login',data(vm) {return{}},}</script>

然后在App.vue 文件中引入Login.vue ,然后使用该组件

<template><div class="app"><h1>Hello Vue !</h1><Login/><Student/><School/></div>
</template><script lang="ts">// 把Student.vue导入import Student from './components/Student.vue';// 把School.vue导入import School from './components/School.vue';// 把Login.vue导入import Login from './components/Login.vue';// 其他文件使用Student就定义exportexport default{name:'App',components:{Student,School,Login}}</script><style>.app{background-color: aqua;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style>

运行,界面如下:

在这里插入图片描述

2.4 Vue 3 启动!

  上面所写的代码是 Vue 2 的形式,Option API 是 vue 2 特性,其缺点在于不利于对方法、数据进行管理,在数据较多时造成管理混乱;而 Compostion API 是 vue 3 特性,它将所有相同功能的数据、方法、计算等属性放在一个 setup 中。

  在默认情况下,setup中的变量是非响应式,若需改为响应式,使用 ref 关键字将数据组装。ref 是 vue 3 是对 ts 的基本数据类型进行打包转成对象,这样才能转换为响应式。

2.4.1 Vue 2 升级为Vue 3

Student.vue 文件代码

<template><div class="student"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><h2>地址:{{ addr }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showTel">显式联系方式</button><button @click="changeAddr">修改地址</button></div>
</template><style scoped>.student{background-color: blueviolet;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style><script lang="ts">import {ref} from 'vue'export default{name:'Student',setup() {let name = ref('张三')let age = ref(21)let tel = ref('1008611')let addr = ref('福建省福州市福州大学计算机与大数据学院')function changeName(){name.value = "李四";console.log(name);}function changeAge(){age.value+=1;console.log(age);}function showTel(){alert(tel.value);}function changeAddr(){addr.value='中国';}return {name,age,addr,changeAge,changeName,showTel,changeAddr};},}
</script>

2.4.2 小小改进

如果后期数据量过多,Vue 3 的 setup 要返回一堆的变量和方法名,非常的不方便!

于是可以采用下面写法:

<template><div class="student"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><h2>地址:{{ addr }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showTel">显式联系方式</button><button @click="changeAddr">修改地址</button></div>
</template><style scoped>.student{background-color: blueviolet;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style><script lang="ts" setup name="Student">import {ref} from 'vue'let name = ref('张三')let age = ref(21)let tel = ref('1008611')let addr = ref('福建省福州市福州大学计算机与大数据学院')function changeName(){name.value = "李四";console.log(name);}function changeAge(){age.value+=1;console.log(age);}function showTel(){alert(tel.value);}function changeAddr(){addr.value='中国';}</script>

如果node.js版本低于18的话,需要安装下面插件:

先在终端按下 ctrl+c,输入 y 结束进程

然后输入代码:npm install vite-plugin-vue-setup-extend -D

在这里插入图片描述

安装完后,找到 vite.config.ts 文件,导入该插件,只要在里面添加下面代码即可:

import vueSetupExtend from 'vite-plugin-vue-setup-extend'

在这里插入图片描述

安装完后,运行该程序【即新建终端,输入:npm run dev 】,运行界面如下:

在这里插入图片描述

2.4.3 响应吧!对象与对象数组

  前面提到的 ref 关键字只能将基本数据类型转换为响应式对象,如果要把对象和对象数组转变为响应式,则需要关键字 reactive

  如果变量前面不加 ref 或者 reactive ,你会发现,点击按钮,界面数据没有变化!

<template><div class="student"><h2>姓名:{{ name }}</h2><h2>年龄:{{ age }}</h2><h2>地址:{{ addr }}</h2><h2>拥有一辆{{ car.brand }},价值为{{ car.price }}</h2><button @click="changeName">修改名字</button><button @click="changeAge">修改年龄</button><button @click="showTel">显式联系方式</button><button @click="changeAddr">修改地址</button><button @click="changePrice">加钱</button><h2>游戏列表</h2><ul><li v-for="g in games" v-bind:key="g.id">{{ g.name }}</li></ul><button @click="changeFirstGame">修改第一个游戏</button></div>
</template><style scoped>.student{background-color: blueviolet;box-shadow: 0 0 10px;border-radius: 10px;padding: 20px;}
</style><script lang="ts" setup name="Student">import {ref} from 'vue'  // 把基本数据类型转换成响应式对象import { reactive } from 'vue'; // 把对象转换为响应式对象let name = ref('张三')let age = ref(21)let tel = ref('1008611')let addr = ref('福建省福州市福州大学计算机与大数据学院')let car = reactive({brand:'五菱宏光 pro max 天空紫' , price:110})let games = reactive([{id:'game01',name:'原神'},{id:'game02',name:'碧蓝航线'},{id:'game03',name:'明日方舟'}])function changeName(){name.value = "李四";console.log(name);}function changeAge(){age.value+=1;console.log(age);}function showTel(){alert(tel.value);}function changeAddr(){addr.value='中国';}function changePrice(){car.price+=10;console.log(car.price);}function changeFirstGame(){games[0].name='黑神话悟空';}</script>

运行结果如下:

在这里插入图片描述

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

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

相关文章

线性代数笔记14--投影

1. 一维空间投影 p X A e B − p B − X A A ⊤ e 0 A ⊤ ( B − X A ) 0 X A ⊤ A A ⊤ B X A ⊤ B A ⊤ A p X A A A ⊤ B A ⊤ A pXA\\ eB-pB-XA\\ A^{\top}e0\\ A^{\top}(B-XA)0\\ XA^{\top}AA^{\top}B\\ X\frac{A^{\top}B}{A^{\top}A}\\ pXAA\frac{A^{\top}B}{A^…

Java开发与配置用到的各类中间件官网

开发配置时用到了一些官网地址&#xff0c;记录一下。 activemq 官网&#xff1a;ActiveMQ elk 官网&#xff1a;Elasticsearch 平台 — 大规模查找实时答案 | Elastic nginx 官网&#xff1a;nginx maven 官网&#xff1a;Maven – Welcome to Apache Maven nexus 官网&a…

Zoom软件怎么购买?zoom付费订阅教程

首先&#xff0c;让我们来了解一下Zoom的各个版本以及它们的价格。简单来说&#xff0c;Zoom分为免费版和收费版&#xff0c;收费版又包括专业版、商业版和企业版。 一、免费版 Zoom的免费版功能已经非常实用了&#xff0c;适合个人用户和小团队使用。免费版提供以下功能: 最多…

centos7 python3.12.1 报错 No module named _ssl

https://blog.csdn.net/Amio_/article/details/126716818 安装python cd /usr/local/src wget https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz tar -zxvf Python-3.12.1.tgz cd Python-3.12.1/ ./configure -C --enable-shared --with-openssl/usr/local/opens…

小程序学习

一、第一天 1、小程序体验 2、注册账号 小程序 (qq.com) 3、开发工具下载 下载 / 稳定版更新日志 (qq.com) 4、目录结构 "navigationBarBackgroundColor": "#00b26a" 配置头部背景色 4、wxml模板介绍 5、wxss 6、js文件 7、宿主环境 1、通信主体 2…

spring boot 2.4.x 之前版本(对应spring-cloud-openfeign 3.0.0之前版本)feign请求异常逻辑

目录 feign SynchronousMethodHandler 第一部分 第二部分 第三部分 spring-cloud-openfeign LoadBalancerFeignClient ribbon AbstractLoadBalancerAwareClient 在之前写的文章配置基础上 https://blog.csdn.net/zlpzlpzyd/article/details/136060312 因为从 spring …

Java --- springcloud之consul

目录 一、consul的使用 1.1、主要功能 1.2、安装及运行 1.3、添加微服务到consul 1.3.1、8001微服务添加相关pom、配置文件、注解 1.3.2、80微服务添加相关pom、配置文件、注解 1.4、三个注册中心异同 1.5、consul进行分布式配置 1.5.1、修改8001的yml配置文件 1.5.2…

运维知识点-Apache HTTP Server

Apache 介绍 介绍 Apache是一个开源的Web服务器软件&#xff0c;全称为Apache HTTP Server&#xff0c;由Apache软件基金会开发和维护。它是目前全球使用最广泛的Web服务器软件之一&#xff0c;占全球所有网络服务器的很大比例。Apache服务器具有跨平台的特性&#xff0c;可以…

最简k8s部署(AWS Load Balancer Controller使用)

问题 我需要在k8s集群里面部署springboot服务&#xff0c;通过k8s ingress访问集群内部的springboot服务&#xff0c;应该怎么做&#xff1f; 这里假设已经准备好k8s集群&#xff0c;而且也准备好springboot服务的运行镜像了。这里我们将精力放在k8s服务编排上面。 一图胜千言…

基于Springboot的智慧社区居家养老健康管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的智慧社区居家养老健康管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;…

Humanoid-Gym 开源人形机器人端到端强化学习训练框架!星动纪元联合清华大学、上海期智研究院发布!

系列文章目录 前言 Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer GitHub Repository: GitHub - roboterax/humanoid-gym: Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer 一、介…

[java基础揉碎]super关键字

super关键字: 基本介绍 super代表父类的引用&#xff0c;用于访问父类的属性、方法、构造器 super给编程带来的便利/细节 1.调用父类的构造器的好处(分工明确&#xff0c;父类属性由父类初始化&#xff0c;子类的属性由子类初始化) 2.当子类中有和父类中的成员(属性和方法)重…

软考高级:信息系统生命周期概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

SpringCloudGateway网关限流

文章目录 令牌桶算法原理Gateway中限流实现 网关除了请求路由、身份验证&#xff0c;还有一个非常重要的作用&#xff1a;请求限流。当系统面对高并发请求时&#xff0c;为了减少对业务处理服务的压力&#xff0c;需要在网关中对请求限流&#xff0c;按照一定的速率放行请求。 …

【数据结构】单链表的层层实现!! !

关注小庄 顿顿解馋(●’◡’●) 上篇回顾 我们上篇学习了本质为数组的数据结构—顺序表&#xff0c;顺序表支持下标随机访问而且高速缓存命中率高&#xff0c;然而可能造成空间的浪费&#xff0c;同时增加数据时多次移动会造成效率低下&#xff0c;那有什么解决之法呢&#xff…

VS Code引入ECharts

Charts是一个使用 JavaScript 实现的开源可视化库&#xff0c;涵盖各行业图表&#xff0c;提供了丰富的图表类型和交互能力。&#xff08;摘自菜鸟教程&#xff09; 下面我们来介绍一下VS Code引入ECharts的相关操作 检查电脑是否已经安装了Java语言的软件开发工具包 ECharts…

设计模式-行为型设计模式-命令模式

命令模式&#xff08;Command&#xff09;&#xff0c;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤销的操作。[DP] // 命令接口 interface Command {void execute(); }// 具体命…

备考银行科技岗刷题笔记(持续更新版)

银行考试计算机部分复习 IEEE 802.11的帧格式 1.1 IEEE 802.11是什么&#xff1f; 802.11是国际电工电子工程学会&#xff08;IEEE&#xff09;为无线局域网络制定的标准。目前在802.11的基础上开发出了802.11a、802.11b、802.11g、802.11n、802.11ac。并且为了保证802.11更…

java SSM售后服务管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

源码特点 java SSM售后服务管理系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代 码和数据库&#xff0c;系统主要采用B/…

Scrapy与分布式开发(2.3):lxml+xpath基本指令和提取方法详解

lxmlxpath基本指令和提取方法详解 一、XPath简介 XPath&#xff0c;全称为XML Path Language&#xff0c;是一种在XML文档中查找信息的语言。它允许用户通过简单的路径表达式在XML文档中进行导航。XPath不仅适用于XML&#xff0c;还常用于处理HTML文档。 二、基本指令和提取…