IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 2021-08-26 Vue 生命周期 Axios 请求案例 -> 正文阅读

[JavaScript知识库]2021-08-26 Vue 生命周期 Axios 请求案例

VUE 入门案例

基本语法

  1. 导入js类库
  2. 指定vue渲染区域 标签体
  3. 实例化vue对象
  4. 数据取值

var/let/const说明

关于js中变量定义说明:

  • var 没有作用域的概念,容易出现安全性问题 成员变量
  • let 作用于var类似,有作用域的概念,局部变量
  • const定义常量
1.{{msg}} 当页面没有渲染成功时.以原标签展现.
2.v-text  当页面没有渲染完成,则不予展现.
3.v-html  将html代码片段 渲染展现

MVVM思想

Model-view-viewModel

设计思想就是关注Model的变化,通过viewModel自动去更新DOM的状态,数据驱动

事件绑定

//记得导入vue.js ??

<div id="app">
?? ??? ?{{num}}
?? ??? ?<button v-on:click="num++">++</button>
?? ??? ?<button @click="num++">++</button>
?? ??? ?<button v-on:click="add()">++</button>
?? ??? ?</div>
?? ??? ?<script type="text/javascript">
?? ??? ??? ?new Vue({
?? ??? ??? ??? ?el:"#app",
?? ??? ??? ??? ?data:{
?? ??? ??? ??? ??? ?num:100?? ??? ??? ?
?? ??? ??? ??? ?},?? ??? ??? ?
?? ??? ??? ??? ?methods:{
?? ??? ??? ??? ??? ?add:function(){
?? ??? ??? ??? ??? ??? ?this.num++
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}?? ?
?? ??? ??? ?})
?? ??? ?</script>

分支结构

1.v-if       如果判断为true 则展现元素
2.v-else-if  如果不满足v-if,检查是否满足v-else-if
3.v-else     上述都不满足  才展现.

?循环结构

<p v-for="value,index in userList">靠近 in userList? 所以index为下标? value具体对象

<p v-for="value,index in userList">
?? ??? ??? ??? ?<span v-text="index"></span>
?? ??? ??? ??? ?<span v-text="value"></span>?? ??? ??? ??? ?
?? ??? ??? ?</p>

new Vue({
?? ??? ??? ??? ?el:"#app",
?? ??? ??? ??? ?data:{
?? ??? ??? ??? ??? ?hobby:["aa","vv","cc","dd"],
?? ??? ??? ??? ??? ?userList:[{id:100,name:"aa",age:60},{id:101,name:"aa",age:60},{id:102 ,name:"aa",age:60}]
?? ??? ??? ??? ?}?? ??? ?
?? ??? ??? ?})

MVC设计思想

在这里插入图片描述

?表单双向数据绑定

VUE的点击事件中有一个属性,可以取消标签的默认行为? 必须挂载渲染

@click.prevent

常用场景:

form标签? 阻止action提交

a标签??????? 阻止href属性跳转

<!DOCTYPE html>
<html>
?? ?<head>
?? ??? ?<meta charset="utf-8">
?? ??? ?<title>表单双向数据绑定</title>
?? ?</head>
?? ?<body>
?? ??? ?<div id="app">
?? ??? ??? ?<!-- 问题: 表单中的哪些标签可以使用双向数据绑定
?? ??? ??? ??? ? 双向数据绑定说明: 用户可以录入的标签.
?? ??? ??? ??? ?
?? ??? ??? ??? ? 答案:
?? ??? ??? ??? ??? ?1.文本框 2.单选框 3.多选框 4.下拉框? 5.文本域
?? ??? ??? ? -->
?? ??? ??? ? <form action="http://baidu.com">
?? ??? ??? ??? ? <div>
?? ??? ??? ??? ??? ? 用户名: <input type="text" v-model="username"/>
?? ??? ??? ??? ? </div>
?? ??? ??? ??? ? <div>
?? ??? ??? ??? ? ?? ? 性别: <input type="radio" value="男" name="sex"?? v-model="sex"/>男
?? ??? ??? ??? ??? ??? ??? <input? type="radio" value="女" name="sex" v-model="sex"/>女
?? ??? ??? ??? ? </div>
?? ??? ??? ??? ? <div>
?? ??? ??? ??? ? ?? ? 爱好:
?? ??? ??? ??? ??? ??? ?<input type="checkbox" name="hobby" value="敲代码" v-model="hobby"/>敲代码
?? ??? ??? ??? ??? ??? ?<input type="checkbox" name="hobby" value="打游戏" v-model="hobby"/>打游戏
?? ??? ??? ??? ??? ??? ?<input type="checkbox" name="hobby" value="打豆豆" v-model="hobby"/>打豆豆
?? ??? ??? ??? ? </div>
?? ??? ??? ??? ? <div>
?? ??? ??? ??? ??? ? <!--
?? ??? ??? ??? ??? ??? ?VUE的点击事件中有一个属性,可以取消标签的默认行为
?? ??? ??? ??? ??? ??? ?@click.prevent
?? ??? ??? ??? ??? ??? ?常用场景:
?? ??? ??? ??? ??? ??? ??? ?1. form标签? 阻止 action 提交
?? ??? ??? ??? ??? ??? ??? ?2. a标签???? 阻止 href?? 属性跳转
?? ??? ??? ??? ??? ? -->
?? ??? ??? ??? ??? ? <input type="submit" value="提交" @click.prevent="formBtn"/>
?? ??? ??? ??? ? </div>
?? ??? ??? ? </form>
?? ??? ??? ???? ????
?? ??? ?</div>
?? ??? ?
?? ??? ?<script src="../js/vue.js"></script>
?? ??? ?<script>
?? ??? ??? ?const app = new Vue({
?? ??? ??? ??? ?el: "#app",
?? ??? ??? ??? ?data: {
?? ??? ??? ??? ??? ?username: 'aaaa',
?? ??? ??? ??? ??? ?sex: '女',
?? ??? ??? ??? ??? ?hobby: ['敲代码']
?? ??? ??? ??? ?},
?? ??? ??? ??? ?methods: {
?? ??? ??? ??? ??? ?formBtn(){
?? ??? ??? ??? ??? ??? ?alert("点击按钮 ajax提交数据")
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?})
?? ??? ?</script>
?? ?</body>
</html>

常用双向数据绑定属性

<!DOCTYPE html>
<html>
?? ?<head>
?? ??? ?<meta charset="utf-8">
?? ??? ?<title>表单双向数据绑定</title>
?? ?</head>
?? ?<body>
?? ??? ?<div id="app">
?? ??? ??? ?<!--1.v-model.number 将输入的内容转化为数值类型? -->
?? ??? ??? ?年龄: <input type="number" v-model.number="ageTest"/>
?? ??? ??? ?<button @click="addNum">加法</button>
?? ??? ??? ?<br>
?? ??? ??? ?<!--2.去除多余的空格? -->
?? ??? ??? ?用户名: <input type="text" v-model.trim="username" />
?? ??? ??? ?用户输入的长度 {{username.length}}
?? ??? ??? ?<br>
?? ??? ??? ?
?? ??? ??? ?<!-- 3.懒加载方式 用户离焦触发 -->
?? ??? ??? ?信息: <input type="text" v-model.lazy="msg" /> {{msg}}
?? ??? ?</div>
?? ??? ?
?? ??? ?<script src="../js/vue.js"></script>
?? ??? ?<script>
?? ??? ??? ?const app = new Vue({
?? ??? ??? ??? ?el: "#app",
?? ??? ??? ??? ?data: {
?? ??? ??? ??? ??? ?ageTest: '',
?? ??? ??? ??? ??? ?username: '',
?? ??? ??? ??? ??? ?msg: ''
?? ??? ??? ??? ?},
?? ??? ??? ??? ?methods: {
?? ??? ??? ??? ??? ?addNum(){
?? ??? ??? ??? ??? ??? ?this.ageTest = this.ageTest + 1
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?})
?? ??? ?</script>
?? ?</body>
</html>

VUE生命周期

<!-- 知识梳理:
?? ??? ?
?? ??? ??? ?1.生命周期函数的方法名称 必须固定.
?? ??? ??? ?2.生命周期函数是VUE对象特有的函数.应该放到根目录下.
?? ??? ??? ?3.当页面渲染成功之后, 一共执行了4个生命周期方法.
?? ??? ??? ??? ?第一类: VUE对象的创建.
?? ??? ??? ??? ??? ?beforeCreate:对象创建前调用
?? ??? ??? ??? ??? ?created: VUE对象已经创建完成之后调用?? ?
?? ??? ??? ??? ?第二类: VUE对象的挂载(渲染)
?? ??? ??? ??? ??? ?beforeMount:? el : "#app",VUE对象在找到@APP标签之前先执行该函数.
?? ??? ??? ??? ??? ?mounted: 当挂载完成(渲染完成),用户可以看到页面数据之后调用该函数
?? ??? ??? ?
?? ??? ??? ?4. 用户修改阶段:
?? ??? ??? ??? ?第三类:
?? ??? ??? ??? ??? ?beforeUpdate: 当用户修改数据 点击"回车" 之后调用该函数
?? ??? ??? ??? ??? ?过渡: 数据已经被修改
?? ??? ??? ??? ??? ?updated: 数据已经被修改之后调用该函数
?? ??? ??? ?5. 销毁阶段:
?? ??? ??? ??? ? 销毁函数,VUE对象默认不会调用. 可以通过函数由用户调用
?? ??? ??? ??? ? beforeDestroy: 在销毁方法执行前
?? ??? ??? ??? ? destroyed:???? 标志着VUE对象已经销毁.

VUE 前后端调用

Ajax介绍

局部刷新,异步访问

在这里插入图片描述

?步骤:
1. 用户发起Ajax请求, Ajax内部机制,将请求交给Ajax引擎处理.
2. Ajax引擎接收到用户的请求之后,重写发起一个新的请求.访问后端服务器.
3. 当服务器端接收到了 Ajax请求之后,完成业务处理.之后将数据响应给Ajax引擎.
4. Ajax引擎通过事先约定好的 回调函数, 将服务器数据 交还给用户.
5.用户在请求的过程中,可以完成自己的任务.
注意事项: 多个Ajax的请求 不关注顺序.
导入axios.js

?????????????? 1.请求类型
?? ??? ??? ??? ??? 1. get? 执行查询业务
?? ??? ??? ??? ??? 2. post 执行form表单提交(登录/新增)
?? ??? ??? ??? ??? 3. put? 执行修改操作
?? ??? ??? ??? ??? 4. delete 执行删除业务时.
?? ??? ??? ??? ?? ?
?? ??? ??? ??? ?2. axios语法
?? ??? ??? ??? ??? axios.get("url地址信息","参数信息")
?? ??? ??? ??? ??? ??? ?.then(function(args){
?? ??? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ??? ??? ?})
?? ??? ??? ??? ??? ??? ?
?? ??? ??? ??? ?3. 关于args参数说明
?? ??? ??? ??? ??? ?axios为了统筹请求状态.将所有的数据封装为
?? ??? ??? ??? ??? ?promise对象
?

?Controller 层开启跨域机制

@CrossOrigin

<!DOCTYPE html>
<html>
?? ?<head>
?? ??? ?<meta charset="utf-8">
?? ??? ?<title>前后端调用</title>
?? ??? ?<script src="../js/axios.js" type="text/javascript" charset="utf-8"></script>
?? ?</head>
?? ?<body>
?? ??? ?<!-- 查询id=1的用户
?? ??? ? url:http://localhost:8080/axios/getUserById?id=1-->
?? ??? ? <script type="text/javascript">
?? ??? ? axios.get("http://localhost:8080/axios/getUserById?id=1").then(
?? ??? ? promise => {
?? ??? ??? ? console.log(promise.data)
?? ??? ? }
?? ??? ? )?? ?
?? ??? ? //查女 大于19
?? ??? ?? let sex2="女"
?? ??? ?? let age2=18
?? ??? ?? axios.get(`http://localhost:8080/axios/user/${sex2}/${age2}`).then(promise => {
?? ??? ??? ?? console.log(promise.data)
?? ??? ?? })
?? ??? ?? // 对象传参
?? ??? ?? let user ={
?? ??? ??? ?? name:"王昭君",
?? ??? ??? ?? sex:"女",
?? ??? ??? ?? age:19
?? ??? ?? }
?? ??? ?? axios.get("http://localhost:8080/axios/getUser",{params:user}).then(
?? ??? ?? promise => {
?? ??? ??? ?? console.log(promise.data)
?? ??? ?? }
?? ??? ?? )
?? ??? ? </script>
?? ?</body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 11:46:11  更:2021-08-27 11:46:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:50:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码