当前位置: 首页 > news >正文

Vue与Ajax快速入门

一、Vue

1、什么是Vue

2、Vue常用指令

(1)v-for

案例核心代码:

<div id="container"><!-- 顶部导航栏 --><div class="navbar"><h1>Tlias智能学习辅助系统</h1><a href="#">退出登录</a></div><!-- 搜索表单区域 --><form class="search-form" action="/search" method="post"><label for="name">姓名:</label><input type="text" id="name" name="name" placeholder="请输入姓名"><label for="gender">性别:</label><select id="gender" name="gender"><option value=""></option><option value="1">男</option><option value="2">女</option></select><label for="position">职位:</label><select id="position" name="position"><option value=""></option><option value="1">班主任</option><option value="2">讲师</option><option value="3">学工主管</option><option value="4">教研主管</option><option value="5">咨询师</option></select><button type="submit">查询</button><button type="reset">清空</button></form><!-- 表格展示区 --><table><!-- 表头 --><thead><tr><th>序号</th><th>姓名</th><th>性别</th><th>头像</th><th>职位</th><th>入职日期</th><th>最后操作时间</th><th>操作</th></tr></thead><!-- 表格主体内容 --><tbody><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>{{e.job}}</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><!-- 页脚版权区域 --><footer class="footer"><p>江苏传智播客教育科技股份有限公司</p><p>版权所有 Copyright 2006-2024 All Rights Reserved</p></footer>
</div><script type="module">import {createApp} from 'https://unpkg.com/vue@3/dist/vue.esm-browser.js'createApp({data() {return {empList: [{"id": 1,"name": "谢逊","image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2023/4.jpg","gender": 1,"job": "1","entrydate": "2023-06-09","updatetime": "2024-09-30T14:59:38"},{"id": 2,"name": "韦一笑","image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2023/1.jpg","gender": 1,"job": "1","entrydate": "2020-05-09","updatetime": "2024-09-01T00:00:00"},{"id": 3,"name": "黛绮丝","image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2023/2.jpg","gender": 2,"job": "2","entrydate": "2021-06-01","updatetime": "2024-09-01T00:00:00"}]}}}).mount('#container')
</script>

(2)v-bind动态为HTML标签绑定属性值

案例代码优化图像:

            <td><img class="avatar" v-bind:src="e.image" :alt="e.name"><img class="avatar" :src="e.image" :alt="e.name"></td>

(3)v-if与v-show

案例代码优化职位(选择其一):

            <td><!--                方法一:v-if--><span v-if="e.job==1">班主任</span><span v-if="e.job==2">讲师</span><span v-if="e.job==3">学工主管</span><span v-if="e.job==4">教研主管</span><span v-if="e.job==5">咨询师</span><!--                方法二:v-show--><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>

(4)v-model双向数据绑定

核心代码:

    <!--    将searchForm展示在页面上,方便检查是否成功-->{{searchForm}}<!-- 搜索表单区域 --><form class="search-form" action="/search" method="post"><label for="name">姓名:</label><input type="text" id="name" name="name" placeholder="请输入姓名" v-model="searchForm.name"><label for="gender">性别:</label><select id="gender" name="gender" v-model="searchForm.gender"><option value=""></option><option value="1">男</option><option value="2">女</option></select><label for="position">职位:</label><select id="position" name="position" v-model="searchForm.job"><option value=""></option><option value="1">班主任</option><option value="2">讲师</option><option value="3">学工主管</option><option value="4">教研主管</option><option value="5">咨询师</option></select><button type="submit">查询</button><button type="reset">清空</button></form>

v-model的双向数据绑定:

(5)v-on为HTML标签绑定事件

功能实现:查询打印,清空清空

核心代码:(给两个按钮分别使用v-on绑定事件)

        <button type="button" v-on:click="search">查询</button><button type="button" @click="reset">清空</button>methods: {search() {console.log(this.searchForm)},reset() {this.searchForm = {name: '',gender: '',position: ''}}}

二、Ajax

1、什么是Ajax

2、如何在前端页面发送Ajax异步请求?使用Axios

核心代码:

<!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>
</head>
<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({url: 'https://mock.apifox.cn/m1/3083103-0-default/emps/list',method: 'GET'}).then((result) => {  // 成功回调函数console.log(result.data);}).catch((error) => {  // 失败回调函数console.log(error);});})//发送POST请求document.querySelector('#btnPost').addEventListener('click', () => {axios({url: 'https://mock.apifox.cn/m1/3083103-0-default/emps/update',method: 'POST',  // post请求方式,请求体data: 'id=1'}).then((result) => {// 成功回调函数console.log(result.data);}).catch((error) => {// 失败回调函数console.log(error);});})
</script>
</body>
</html>

3、简化Axios(请求方式别名)

核心代码:

<!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>
</head>
<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);});})//发送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>
</html>

4、异步变同步(代码从上至下依次执行)===》async&await

核心代码:

            async search() {// 发送ajax请求,获取数据// axios.get(`https://web-server.itheima.net/emps/list?name=${this.searchForm.name}&gender=${this.searchForm.gender}&job=${this.searchForm.job}`).then((result) => {//     this.empList = result.data.data;// }).catch((error) => {//     console.log(error);// })// 使用async/await将异步改为同步,使得代码更加清晰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;}

5、Vue的生命周期

八个钩子方法:

http://www.lryc.cn/news/606803.html

相关文章:

  • GXP6040K压力传感器可应用于医疗/汽车/家电
  • Python Flask框架Web应用开发完全教程
  • 【stm32】GPIO
  • 第3章 AB实验的统计学知识
  • 从Web2.0到Web3.0:社交参与方式的重塑与延伸
  • 报错[Vue warn]: Failed to resolve directive: else如何解决?
  • Linux9 root密码修改
  • 数据结构第5问:什么是队列?
  • 【科普】怎么理解Modbus、TCP、UDP
  • C++入门自学Day4-- c++类与对象(友元)
  • 《软件测试与质量控制》实验报告一 测试用例设计
  • 新一代PLC控制软件平台EsDA-AWStudio
  • Linux文件系统理解2
  • Python爬虫库性能与选型实战指南:从需求到落地的全链路解析
  • PendingIntent的flag和原理解析
  • 如何使用淘宝开放平台API获取商品详细信息?
  • Docker设置容器时间
  • 通过pendingIntent启动activity被block问题
  • 网站QPS多少才算高并发
  • TOGAF指南1
  • Effective C++ 条款16: 成对使用new和delete时要采用相同形式
  • pycharm快捷键设置为和vscode一样
  • 数据仓库、数据湖与湖仓一体技术笔记
  • 高防服务器租用:保障数据安全
  • 自建rustdesk服务器过程记录
  • 【代码】印章提取红色部分
  • 观测云基于 ToB/ToC 业务可观测最佳实践
  • Android ConstraintLayout 使用详解
  • A 常见图形API和图形渲染引擎介绍
  • k8s云原生rook-ceph pvc快照与恢复(上)