【javaweb】学习日记Day3 - Ajax 前后端分离开发 入门

目录

一、Ajax

1、简介

2、Axios (没懂 暂留)

(1)请求方式别名

(2)发送get请求

(3)发送post请求

(4)案例

二、前端工程化

1、Vue项目-目录结构

2、Vue项目-启动

(1)vscode页面启动

(2)cmd命令框启动

3、配置Vue端口号

4、Vue项目开发流程

三、Vue组件库 - Element 

1、快速入门

(1)在main.js引入ElementUI组件库

(2)根据文档选择想要的皮肤 复制代码 

2、常用组件介绍

(1)Table 表格标签

(2)Pagination 分页标签

(3)Dialog  对话框

(4)Form  表单

(5)案例

四、Vue路由

1、概念

2、案例

① 配置路由路径

② 给侧栏标签添加标签

③ 在APP.vue添加 

五、打包部署


一、Ajax

1、简介

  • 概念:异步的JavaScript和XML
  • 作用:
    • 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应数据
    • 异步交互:可以在不重新加载整个页面情况下,与服务器交换数据并更新部分网页端技术,如:搜索框联想功能,校验用户名

2、Axios (没懂 暂留)

(1)请求方式别名

  • axios.get(url[,config])
  • axios.delete(url[,config])
  • axios.post(url[,data,config])
  • axios.put(url[,data,config])

(2)发送get请求

axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result=>{console.log(request.data);
})

(3)发送post请求

axios.post("http://yapi.smart-xwork.cn/mock/169327/emp/list","id=1").then(result=>{console.log(request.data);
})
<!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>Ajax-Axios</title><script src="axios-0.18.0.js"></script>
</head>
<body><input type="button" value="获取数据GET" onclick="get()"><input type="button" value="删除数据POST" onclick="post()"></body><script>function get(){//通过axios发送异步请求-getaxios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result=>{console.log(request.data);})// axios(//     {//         method:"get",//         url:"http://yapi.smart-xwork.cn/mock/169327/emp/list"//     }).then(result=>{//         console.log(request.data);//     })}function post(){//通过axios发送异步请求-postaxios.post("http://yapi.smart-xwork.cn/mock/169327/emp/list","id=1").then(result=>{console.log(request.data);})// axios(//     {//         method:post,//         url:"http://yapi.smart-xwork.cn/mock/169327/emp/list",//         data:"id=1"//     }).then(result=>{//         console.log(request.data);//     })}
</script>
</html>

(4)案例

<!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>Ajax-Axios-案例</title><script src="js/axios-0.18.0.js"></script><script src="js/vue.js"></script></head>
<body><div id="app"><table border="1" cellspacing="0" width="60%"><tr><th>编号</th><th>姓名</th><th>图像</th><th>性别</th><th>职位</th><th>入职日期</th><th>最后操作时间</th></tr><tr align="center" v-for="(emp,index) in emps"><td>{{index + 1}}</td><td>{{emp.name}}</td><td><img :src="emp.image" width="70px" height="50px"></td><td><span v-if="emp.gender == 1">男</span><span v-if="emp.gender == 2">女</span></td><td>{{emp.job}}</td><td>{{emp.entrydate}}</td><td>{{emp.updatetime}}</td></tr></table></div>
</body>
<script>new Vue({el: "#app",data: {emps:[]},mounted () {//发送异步请求,加载数据axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => {this.emps = result.data.data;})}});
</script>
</html>

二、前端工程化

1、Vue项目-目录结构

2、Vue项目-启动

(1)vscode页面启动

(2)cmd命令框启动

npm run serve

3、配置Vue端口号

4、Vue项目开发流程

 Vue组件文件以.vue结尾,每个组件由三部分组成

  • <template>    模板部分,生成HTML代码
  • <script> 控制模板的数据来源和行为
  • <style> css样式部分
<template><div id="app"><h1>{{message}}</h1></div>
</template><script>
export default{   //设置导出模块 可以在别处用import导入data(){return {message:"坚持不懈哇哇!"}},methods:{}
}
</script><style>#app{text-align: center;color: cadetblue;}
</style>

三、Vue组件库 - Element 

Element 是优化版组件库(也就是炫彩ui组件皮肤)

1、快速入门

(1)在main.js引入ElementUI组件库

//引入Element ui组件
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';Vue.use(ElementUI);

(2)根据文档选择想要的皮肤 复制代码 

Element官方文档入口!Element - The world's most popular Vue UI framework

2、常用组件介绍

Alt+Shift+F 自动格式化!!!

(1)Table 表格标签

表格戳这→Element - The world's most popular Vue UI framework

<template><div><el-table :data="tableData" border style="width: 100%"><el-table-column prop="date" label="日期" width="180"> </el-table-column><el-table-column prop="name" label="姓名" width="180"> </el-table-column><el-table-column prop="address" label="地址"> </el-table-column></el-table></div>
</template><script>
export default {data() {return {tableData: [{date: "2016-05-02",name: "王小虎",address: "上海市普陀区金沙江路 1518 弄",},{date: "2016-05-04",name: "王小虎",address: "上海市普陀区金沙江路 1517 弄",},{date: "2016-05-01",name: "王小虎",address: "上海市普陀区金沙江路 1519 弄",},{date: "2016-05-03",name: "王小虎",address: "上海市普陀区金沙江路 1516 弄",},],};},
};
</script><style>
</style>

(2)Pagination 分页标签

分页戳这→Element - The world's most popular Vue UI framework

<template><div><el-pagination layout="sizes,prev, pager, next,jumper,total" @size-change="handleSizeChange"@current-change="handleCurrentChange":total="1000"> </el-pagination></div>
</template><script>
export default {data() {return {};},methods: {handleSizeChange(x){alert("每页记录数变化"+x)},handleCurrentChange(x){alert("页码发生变化"+x)}}
};
</script><style>
</style>

(3)Dialog  对话框

对话框戳这→Element - The world's most popular Vue UI framework

<template><div><el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialog</el-button><el-dialog title="收货地址" :visible.sync="dialogTableVisible"><el-table :data="gridData"><el-table-columnproperty="date"label="日期"width="150"></el-table-column><el-table-columnproperty="name"label="姓名"width="200"></el-table-column><el-table-column property="address" label="地址"></el-table-column></el-table></el-dialog></div>
</template><script>
export default {data() {return {gridData: [{date: "2016-05-02",name: "王小虎",address: "上海市普陀区金沙江路 1518 弄",},{date: "2016-05-04",name: "王小虎",address: "上海市普陀区金沙江路 1518 弄",},{date: "2016-05-01",name: "王小虎",address: "上海市普陀区金沙江路 1518 弄",},{date: "2016-05-03",name: "王小虎",address: "上海市普陀区金沙江路 1518 弄",},],dialogTableVisible: false,};},methods: {handleSizeChange(x) {alert("每页记录数变化" + x);},handleCurrentChange(x) {alert("页码发生变化" + x);},},
};
</script><style>
</style>

(4)Form  表单

 表单戳这→Element - The world's most popular Vue UI framework

<template><div><el-button type="text" @click="dialogTableVisible = true">打开嵌套表单的Dialog</el-button><el-dialog title="填写详情" :visible.sync="dialogTableVisible"><el-form ref="form" :model="form" label-width="80px"><el-form-item label="活动名称"><el-input v-model="form.name"></el-input></el-form-item><el-form-item label="活动区域"><el-select v-model="form.region" placeholder="请选择活动区域"><el-option label="区域一" value="shanghai"></el-option><el-option label="区域二" value="beijing"></el-option></el-select></el-form-item><el-form-item label="活动时间"><el-col :span="11"><el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;"></el-date-picker></el-col><el-col class="line" :span="2">-</el-col><el-col :span="11"><el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;"></el-time-picker></el-col></el-form-item><el-form-item label="即时配送"><el-switch v-model="form.delivery"></el-switch></el-form-item><el-form-item label="活动性质"><el-checkbox-group v-model="form.type"><el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox><el-checkbox label="地推活动" name="type"></el-checkbox><el-checkbox label="线下主题活动" name="type"></el-checkbox><el-checkbox label="单纯品牌曝光" name="type"></el-checkbox></el-checkbox-group></el-form-item><el-form-item label="特殊资源"><el-radio-group v-model="form.resource"><el-radio label="线上品牌商赞助"></el-radio><el-radio label="线下场地免费"></el-radio></el-radio-group></el-form-item><el-form-item label="活动形式"><el-input type="textarea" v-model="form.desc"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">立即创建</el-button><el-button>取消</el-button></el-form-item></el-form></el-dialog></div>
</template><script>
export default {data() {return {form: {name: '',region: '',date1: '',date2: '',delivery: false,type: [],resource: '',desc: ''},dialogTableVisible:false,dialogFormVisible:false,};},methods: {onSubmit(){alert(JSON.stringify(this.form))}},
};
</script><style>
</style>

(5)案例

<template><div><el-container style="height: 700px; border: 1px solid #f6bcbc"><el-header style="font-size: 40px; background-color: #f8d7d7">智能容宝学习辅助系统</el-header><el-container><!-- 边框 --><el-aside width="200px"><el-menu :default-openeds="['1', '3']"><el-submenu index="1"><template slot="title"><i class="el-icon-message"></i>学员信息管理</template><el-menu-item-group><el-menu-item index="1-1">2020届</el-menu-item><el-menu-item index="1-2">2021届</el-menu-item></el-menu-item-group></el-submenu></el-menu></el-aside><!-- 主页面 --><el-main><el-main><!-- 表单 --><el-form :inline="true" :model="searchForm" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="searchForm.name" placeholder="姓名"></el-input></el-form-item><el-form-item label="性别"><el-select v-model="searchForm.sex" placeholder="性别"><el-option label="男" value="boy"></el-option><el-option label="女" value="girl"></el-option></el-select></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">查询</el-button></el-form-item><!-- 日期选择器 --><el-form-item><el-date-picker v-model="searchForm.date"type="daterange"range-separator="至"start-placeholder="开始日期"end-placeholder="结束日期"></el-date-picker>                  </el-form-item></el-form>
<br><!-- 表格 --><el-table :data="tableData" border><el-table-column prop="name" label="姓名" width="160"></el-table-column><el-table-column prop="sex" label="性别" width="120"></el-table-column><el-table-column prop="class" label="班级" width="200"></el-table-column><el-table-column prop="job" label="职务" width="220"></el-table-column><el-table-column prop="school" label="学校" width="250"></el-table-column><el-table-column prop="date" label="入学日期" width="220"></el-table-column><el-button type="primary" round size="mini">编辑</el-button><el-button type="danger" round size="mini">删除</el-button></el-table>
<br><!-- 分页 --><el-pagination@size-change="handleSizeChange"@current-change="handleCurrentChange":current-page.sync="currentPage1":page-size="1000"layout="sizes,prev, pager, next,jumper,total":total="100"></el-pagination></el-main></el-main></el-container></el-container></div>
</template><script>
import axios from 'axios';export default {data() {return {tableData: [],searchForm:{name:"",sex:"",data:[]}};},methods:{onSubmit(){alert(JSON.stringify(this.searchForm))},handleSizeChange(x){alert("每页记录数变化"+x)},handleCurrentChange(x){alert("页码发生变化"+x)}},mounted()  //发送异步请求,获取数据{axios.get("").then((result)=>{this.tableData=result.data.data;});}
};
</script><style>
</style>

四、Vue路由

1、概念

  • <router-link to>    请求链接组件,浏览器会传递到该链接
  • <router-view>   动态视图组件,渲染展示对应路由路径

2、案例

通过Vue路由完成左侧菜单栏点击切换效果

① 配置路由路径

import Vue from 'vue'
import VueRouter from 'vue-router'Vue.use(VueRouter)const routes = [{path: '/emp',name: 'emp',component: () => import('../views/item 2/EmpView.vue')  },{path: '/dept',name: 'dept',component: () => import('../views/item 2/DeptView.vue')}
]const router = new VueRouter({routes
})export default router

② 给侧栏标签添加<router-link to>标签

<el-aside width="230px" style="border: 1px solid #eee"><el-menu :default-openeds="['1', '3']"><el-submenu index="1"><template slot="title"><i class="el-icon-message"></i>系统信息管理</template><el-menu-item index="1-1"><router-link to="/dept">部门管理</router-link></el-menu-item><el-menu-item index="1-2"><router-link to="/emp">员工管理</router-link></el-menu-item></el-submenu></el-menu>
</el-aside>

③ 在APP.vue添加 <router-view>

<template><div><router-view></router-view></div>
</template>

五、打包部署

Day03-16. 打包部署_哔哩哔哩_bilibili

step1:点击允许build,进行打包

step2:此时目录出现dist文件,右键

step3:将dist文件内容复制,粘贴到nginx安装目录下的html目录下

 step4:双击nginx.exe即可,在页面输入localhost:80(端口号)回车即可

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

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

相关文章

第10步---MySQL的日志操作

第10步---MySQL的日志操作 错误日志 慢日志 1.查看错误日志 -- 查看日志信息 show VARIABLES like log_error%;2.查看binlog 高版本是默认开启的&#xff0c;低的是默认是不开启的 binlog日志文件是与事务相关 -- 查看binlog日志的格式 show variables like binlog_format;-- …

vue-router在vue2/3区别

构建选项区别 vue2-router const router-new VueRouter({mode:history,base:_name,})vue-next-router import { createRouter,createWebHistory} from vue-next-router const routercreateRouter({history:createHistory(/) })在上述代码中我们发现,vue2中的构建选项mode和ba…

【Python机器学习】实验15 将Lenet5应用于Cifar10数据集(PyTorch实现)

文章目录 CIFAR10数据集介绍1. 数据的下载2.修改模型与前面的参数设置保持一致3. 新建模型4. 从数据集中分批量读取数据5. 定义损失函数6. 定义优化器7. 开始训练8.测试模型 9. 手写体图片的可视化10. 多幅图片的可视化 思考题11. 读取测试集的图片预测值&#xff08;神经网络的…

k8s集群证书过期后,如何更新k8s证书

对于版本 1.21.5&#xff0c;这是我的解决方案&#xff1a; 步骤1&#xff1a; ssh 到主节点&#xff0c;然后在步骤 2 中检查证书。 步骤2&#xff1a; 运行这个命令&#xff1a;kubeadm certs check-expiration rootkube-master-1:~# kubeadm certs check-expiration [c…

qt中窗口的布局

qt中窗口的布局 常用的窗口布局方式使用拖拽控件的方式调用窗口布局使用Widget控件完成窗口布局布局中嵌套布局demo&#xff08;制作登录页面&#xff09; 如果不使用窗口布局&#xff0c;会带来的后果&#xff1a; 控件可能显示不出来不能按照期望的大小显示不能跟随窗口进行…

如何最简单、通俗地理解什么是机器学习?

那就究竟什么是学习呢?诺贝尔经济学奖和图灵奖双料得主、卡耐基梅隆大学的赫伯特 西蒙 (Herbert Simon) 教授是这样定义的&#xff1a;“学习是系统通过经验提升性能的过程”。可以看到&#xff0c;学习是一个过程&#xff0c;并且这里有3个关键词&#xff0c;即经验、提升和…

CSS中如何实现文字溢出省略号(text-overflow: ellipsis)效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中如何实现文字溢出省略号&#xff08;text-overflow: ellipsis&#xff09;效果&#xff1f;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 …

【云原生,k8s】Helm应用包管理器介绍

目录 一、为什么需要Helm&#xff1f; &#xff08;一&#xff09;Helm介绍 &#xff08;二&#xff09;Helm有3个重要概念&#xff1a; &#xff08;三&#xff09;Helm特点 二、Helm V3变化 &#xff08;一&#xff09;架构变化 &#xff08;二&#xff09;自动创建名…

第7章 高性能门户首页构建

mini商城第7章 高性能门户首页构建 一、课题 高性能门户建设 二、回顾 1、了解文件存储系统的概念 2、了解常用文件服务器的区别 3、掌握Minio的应用 三、目标 1、OpenResty 百万并发站点架构 OpenResty 特性介绍 搭建OpenResty Web站点动静分离方案剖析 2、多级缓存架…

STM32L151C8T6 芯片数据手册

1. 芯片型号含义 2. Flash&#xff1a; 64KB 3. keil 配置ST-Link 烧录程序 4. keil 选择Flash 烧录算法 5. 系统主频 32Mhz 6. 时钟树 clock tree

嵌入式系统常用的开发板

今天&#xff0c;了解一下常用的开发板&#xff0c;像stm32是最近了解的&#xff0c;esp8266系列是之前大三下上物联网导论课程时候接触的&#xff0c;一些树莓派&#xff0c;Arduino听说过&#xff0c;但了解不多。

ElasticSearch 7.4学习记录(DSL语法)

上文和大家一起初次了解了很多ES相关的基础知识&#xff0c;本文的内容将会是实际企业中所需要的吗&#xff0c;也是我们需要熟练应用的内容。 面对ES&#xff0c;我们最多使用的就是查询&#xff0c;当我负责这个业务时&#xff0c;现不需要我去考虑如何创建索引&#xff0c;添…

自然语言处理从入门到应用——LangChain:索引(Indexes)-[向量存储器(Vectorstores)]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 Vectorstores是构建索引的最重要组件之一。本文展示了与VectorStores相关的基本功能。在使用VectorStores时&#xff0c;创建要放入其中的向量是一个关键部分&#xff0c;通常通过嵌入来创建。 from langchain.embedd…

Go:测试框架GoConvey 简介

快速开始 GoConvey是一个完全兼容官方Go Test的测试框架&#xff0c;一般来说这种第三方库都比官方的功能要强大、更加易于使用、开发效率更高&#xff0c;闲话少说&#xff0c;先看一个example&#xff1a; package utils import (. "github.com/smartystreets/goconvey…

Java设计模式 (三) 代理设计模式

什么是代理设计模式? 代理设计模式是一种结构型设计模式&#xff0c;它允许创建一个代理对象&#xff0c;用于控制对其他对象的访问。代理模式通常用于在访问对象时添加一些附加操作&#xff0c;而不是直接访问真实对象。代理模式可以在不改变原始类代码的情况下&#xff0c;通…

【Redis】Redis哨兵模式

【Redis】Redis哨兵模式 Redis主从模式当主服务器宕机后&#xff0c;需要手动把一台从服务器切换为主服务器&#xff0c;需要人工干预费事费力&#xff0c;为了解决这个问题出现了哨兵模式。 哨兵模式是是一个管理多个 Redis 实例的工具&#xff0c;它可以实现对 Redis 的监控…

NC65 树表型参照 搜索全部 按钮点击事件后获取sql的方法

NC65 树表型参照 搜索全部 按钮点击事件后获取sql的方法。 /*** 返回 UIbtnLocQuery 特性值。* * return nc.ui.pub.beans.UIButton*/ /* 警告&#xff1a;此方法将重新生成。 */ private nc.ui.pub.beans.UIButton getUIbtnLocQuery() {// 搜索全部 按钮return getButtonPan…

探究HTTP API接口测试:工具、方法与自动化

本文将深入探讨HTTP API接口测试的重要性&#xff0c;并介绍了相关工具、方法以及自动化测试的实施&#xff0c;同时比较了HTTP和API接口测试的区别。从不同角度解析这一关键测试领域&#xff0c;帮助读者更好地理解和应用于实际项目中。 在如今数字化的世界中&#xff0c;软件…

代码随想录训练营day15|102.层序遍历 226.翻转二叉树 101.对称二叉树

TOC 前言 代码随想录算法训练营day15 一、Leetcode 102.层序遍历 1.题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 (即逐层地&#xff0c;从左到右访问所有节点)。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a…

自然语言处理从入门到应用——LangChain:链(Chains)-[通用功能:LLMChain、RouterChain和SequentialChain]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 LLMChain LLMChain是查询LLM对象最流行的方式之一。它使用提供的输入键值&#xff08;如果有的话&#xff0c;还包括内存键值&#xff09;格式化提示模板&#xff0c;将格式化的字符串传递给LLM&#xff0c;并返回LLM…