Vue中axios的使用教程的代码实例
准备:要先导入axios.js跟vue.js的包
1_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> Document</ title>
</ head>
< body>
< input type = " button" value = " axios请求" onclick = " test ( ) " />
< script src = " lib/axios.min.js" > </ script>
< script>
function test ( ) {
var result = axios ( {
method : 'GET' ,
url : 'http://150.158.15.81:8080/search'
} )
result. then ( function ( data ) {
console. log ( data. data)
} )
}
</ script>
</ body>
</ html>
2_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> Document</ title>
</ head>
< body>
< input type = " button" value = " axios测试" onclick = " test ( ) " />
< script src = " lib/axios.min.js" > </ script>
< script>
function test ( ) {
axios ( {
method : 'POST' ,
url : 'http://150.158.15.81:8080/search' ,
data : { key : '周杰伦' , pn : 1 }
} ) . then ( function ( data ) {
console. log ( data) ;
} )
}
</ script>
</ body>
</ html>
3_使用async和await调用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> Document</ title>
</ head>
< body>
< input type = " button" value = " axios测试" onclick = " test ( ) " />
< script src = " lib/axios.min.js" > </ script>
< script>
async function test ( ) {
var result = await axios ( {
method : 'get' ,
url : 'http://150.158.15.81:8080/search'
} )
console. log ( result) ;
}
</ script>
</ body>
</ 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> Document</ title>
</ head>
< body>
< input type = " button" value = " axios测试" onclick = " test ( ) " />
< script src = " lib/axios.min.js" > </ script>
< script>
async function test ( ) {
var { data : res} = await axios ( {
method : 'get' ,
url : 'http://150.158.15.81:8080/search'
} )
console. log ( res. data) ;
}
</ script>
</ body>
</ html>
5_axios中的get和post函数
<! 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> Document</ title>
</ head>
< body>
< input type = " button" value = " GET请求" onclick = " test1 ( ) " />
< input type = " button" value = " POST请求" onclick = " test2 ( ) " />
< input type = " text" id = " key" />
< input type = " button" value = " GET请求URL拼接传参" onclick = " test3 ( ) " />
< script src = " lib/axios.min.js" > </ script>
< script>
function test1 ( ) {
axios. get ( 'http://150.158.15.81:8080/search' , {
params : {
key : '周杰伦' ,
pn : 1
}
} ) . then ( function ( data ) {
console. log ( data)
} )
}
async function test2 ( ) {
var { data : res} = await axios. post ( 'http://150.158.15.81:8080/search' , { key : '陈奕迅' , pn : 1 } )
console. log ( res. data) ;
}
function test3 ( ) {
var key = document. getElementById ( "key" ) . value;
axios. get ( 'http://150.158.15.81:8080/search?key=' + key+ '&pn=1' ) . then ( function ( data ) {
console. log ( data)
} )
}
</ script>
</ body>
</ html>
6_vue过滤器基本语法
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< h1> {{ username | format }}</ h1>
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
var vm = new Vue ( {
el : '#app' ,
data : {
username : 'admIN'
} ,
filters : {
format ( val ) {
return val. substr ( 0 , 1 ) . toUpperCase ( ) + val. substr ( 1 ) . toLowerCase ( ) ;
}
}
} )
</ script>
</ body>
</ html>
7_vue全局过滤器
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< h1> {{ phone | numFormat }}</ h1>
</ div>
< div id = " app2" >
< h1> {{ tel | numFormat }}</ h1>
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
Vue. filter ( "numFormat" , function ( val ) {
return val. substr ( 0 , 3 ) + "****" + val. substr ( 7 ) ;
} )
var vm = new Vue ( {
el : '#app' ,
data : {
phone : '13574838886'
} ,
filters : {
numFormat ( val ) {
return 'aaa' ;
}
}
} )
var vm2 = new Vue ( {
el : '#app2' ,
data : {
tel : '13555555555'
}
} )
</ script>
</ body>
</ html>
8_使用vue过滤器实现日期格式化
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< h1> 用户管理模块</ h1>
< input type = " text" v-model = " newuser" placeholder = " 在此输入用户名" />
< input type = " button" value = " 新增" @click = " add" />
< table border = " 1" width = " 60%" >
< tr>
< th> 编号</ th>
< th> 用户名</ th>
< th> 状态</ th>
< th> 创建时间</ th>
< th> 操作</ th>
</ tr>
< tr align = " center" v-for = " item in list" :key = " item.id" >
< td> {{item.id}}</ td>
< td> {{item.user}}</ td>
< td>
< input type = " checkbox" v-model = " item.type" :id = " ' cb'+item.id" />
< label :for = " ' cb'+item.id" v-if = " item.type" > 启用</ label>
< label :for = " ' cb'+item.id" v-else > 禁用</ label>
</ td>
< td> {{item.time | dateFormat}}</ td>
< td>
< a href = " http://www.baidu.com" @click.prevent = " deleteById(item.id)" > 删除</ a>
</ td>
</ tr>
</ table>
</ div>
< script src = " lib/vue.min.js" > </ script>
< script src = " lib/daijs.min.js" > </ script>
< script>
Vue. filter ( "dateFormat" , function ( val ) {
return dayjs ( val) . format ( 'YYYY-MM-DD HH:mm:ss' ) ;
} )
var vm = new Vue ( {
el : '#app' ,
data : {
newuser : '' ,
num : 4 ,
list : [
{ id : 1 , user : 'zhangsan' , type : true , time : new Date ( ) } ,
{ id : 2 , user : 'lisi' , type : false , time : new Date ( ) } ,
{ id : 3 , user : 'wangwu' , type : true , time : new Date ( ) }
]
} ,
methods : {
deleteById ( id ) {
for ( var i= 0 ; i< this . list. length; i++ ) {
if ( id== this . list[ i] . id) {
this . list. splice ( i, 1 ) ;
break ;
}
}
} ,
add ( ) {
if ( this . newuser== '' ) {
alert ( "用户名不能为空" ) ;
return ;
}
var obj = {
id : this . num,
user : this . newuser,
type : true ,
time : new Date ( )
}
this . list. push ( obj) ;
this . num++ ;
this . newuser= '' ;
}
}
} )
</ script>
</ body>
</ html>
9_多过滤器链
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< h1> {{str | filterA | filterB | filterC}}</ h1>
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
var vm = new Vue ( {
el : '#app' ,
data : {
str : 'hello world!'
} ,
filters : {
filterA ( val ) {
return val. substr ( 1 )
} ,
filterB ( val ) {
return val. substr ( 1 )
} ,
filterC ( val ) {
return val. substr ( 1 )
}
}
} )
</ script>
</ body>
</ html>
10_过滤器参数
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< h1> {{str | filterA(3, 4)}}</ h1>
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
Vue. filter ( "filterA" , function ( val, index, length ) {
return val. substr ( index, length) ;
} )
var vm = new Vue ( {
el : '#app' ,
data : {
str : 'hello world!'
}
} )
</ script>
</ body>
</ html>
11_watch侦听器基本语法
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< input type = " text" v-model = " username" />
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
var vm = new Vue ( {
el : '#app' ,
data : {
username : ''
} ,
watch : {
username ( newVal, oldVal ) {
console. log ( newVal, oldVal) ;
}
}
} )
</ script>
</ body>
</ html>
12_使用侦听器实现用户验证
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< input type = " text" v-model = " username" />
</ div>
< script src = " lib/vue.min.js" > </ script>
< script src = " lib/axios.min.js" > </ script>
< script>
var vm = new Vue ( {
el : '#app' ,
data : {
username : ''
} ,
watch : {
async username ( newVal ) {
var result = await axios. get ( 'http://127.0.0.1:8080/check?username=' + this . username)
console. log ( result. data)
}
}
} )
</ script>
</ body>
</ html>
13_对象格式侦听器
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< input type = " text" v-model = " username" />
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
var vm = new Vue ( {
el : '#app' ,
data : {
username : ''
} ,
watch : {
username : {
handler ( newVal, oldVal ) {
console. log ( '侦听器被执行了' ) ;
} ,
immediate : true
}
}
} )
</ script>
</ body>
</ html>
14_watch深度侦听
<! 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> Document</ title>
</ head>
< body>
< div id = " app" >
< input type = " text" v-model = " info.username" />
</ div>
< script src = " lib/vue.min.js" > </ script>
< script>
var vm = new Vue ( {
el : '#app' ,
data : {
info : {
username : 'admin' ,
password : '123456'
}
} ,
watch : {
info : {
handler ( newVal ) {
console. log ( newVal) ;
} ,
deep : true
}
}
} )
</ script>
</ body>
</ html>