vue生命周期+过滤器+拦截器作业

vue

作业  :自行配置请求数据

需求说明

1、可以通过向 axios 传递相关配置来创建请求

2、参考配置数据,自行配置 get 方法请求数据以及包括传递参数的方式

3、点击按钮之后,可以请求到相应数据,效果如下图所示:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>拦截器demo</title>

<script src="https://cdn.bootcss.com/vue/2.5.14/vue.min.js"></script>

<script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>

</head>

<body>

<div id="box">

{{msg}}

<button @click="load()">链接测试</button>

</div>

<script>

let vm = new Vue({

el:'#box',

data:{

msg:"jin",

},

mounted:function(){

axios.interceptors.request.use(

function(config){

console.log("请求拦截成功!")

return config;

},

function(eror){

console.log()

return Promise.reject(error);

});

axios.interceptors.response.use(

function(config){

console.log("响应拦截成功!")

return config;

},

function(error){

return Promise.reject(error);

});

},

methods:{

load:function(){

axios.get("http://localhost:8080/servlet/TestServlet").then(

value=>{

alert(value.data);

this.msg = value.data;

}).catch(

error=>{

alert(error.status);

});

},

}

});

</script>

</body>

</html>

作业  :时间格式化

需求说明

1、格式化的规则是当 月份、日期、小时等小于 10 的时候,前面补上 0

2、对需要过滤的数据调用定义的规则进行处理,并返回处理之后的结果

3、使用 mounted 生命周期函数,每隔 1s 更新一下时间

4、使用 beforeDestroy 生命周期函数,在组件销毁前清除定时器,效果如

下图所示:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>时间格式</title>

<script src="https://cdn.bootcss.com/vue/2.5.14/vue.min.js"></script>

<script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>

</head>

<body>

<div id="box">

{{msg | Change}}

</div>

<script>

let vm = new Vue({

el:'#box',

data:{

msg:null,

sss:null,

},

mounted:function(){

this.fn3();

},

beforeDestroy:function(){

console.log("jin")

clearInterval(this.sss);

},

methods:{

fn2(){

this.msg=new Date();

// this.time=this.fn1(this.time);

},

fn3(){

this.sss = setInterval(this.fn2,1000);

}

},

filters:{

Change:function(date){

// alert(value)

// value = value.substring(0,19);

// value = value.replace(/-/g,'/');

// var timestamp = new Date(value).getTime();

// var date = new Date(timestamp);

var year = (date.getFullYear()).toString();

var month =(date.getMonth() + 1).toString();

var day = (date.getDate()).toString();

var hours = (date.getHours()).toString();

var minute = (date.getMinutes()).toString();

var second = (date.getSeconds()).toString();

if (month.length == 1) {

month = "0" + month;

}

if (day.length == 1) {

day = "0" + day;

}

if (hours.length == 1) {

hours = "0" + hours;

}

if (minute.length == 1) {

minute = "0" + minute;

}

if (second.length == 1) {

second = "0" + second;

}

var dateTime = year + "-" + month + "-" + day +" "+hours+":"+minute+":"+second;

// return dateTime;

// this.msg = dateTime;

return dateTime;

}

,

}

});

</script>

</body>

</html>

《 交互与实例的生命周期 》上 机作业

业 作业  :彩妆热卖产品列表

需求说明

1、布局完成彩妆热卖产品列表样式

2、利用生命周期函数,模拟在组件挂载之后利用得到的后台数据去渲染列

表,这里的后台数据会提供,效果如下图所示:

[{

            num: 1,

            name: 'Za姬芮新能真皙美白隔离霜 35g',

            imgUrl: "image/icon-1.jpg",

            desc:"¥59.90 最近13403人购买"

        }, {

            num: 2,

            name: '美宝莲精纯矿物奇妙新颜乳霜BB霜 30ml',

            imgUrl: "image/icon-2.jpg",

            desc:"¥89.00 最近13610人购买"

        }, {

            num: 3,

            name: '菲奥娜水漾CC霜40g',

            imgUrl: "image/icon-3.jpg",

            desc:"¥59.90 最近13403人购买"

        }, {

            num: 4,

            name: 'HC 蝶翠诗橄榄卸妆油 200ml',

            imgUrl: "image/icon-4.jpg",

            desc:"¥169.00 最近16757人购买"

        }]

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>index</title>

</head>

<body>

<script src="https://cdn.bootcss.com/vue/2.5.14/vue.min.js"></script>

<script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>

<div id="box">

<ul>

<li v-for="(item,index) in arr">

<h3>{{item.num}}--{{item.name}}</h3><br>

<img v-bind:src="item.imgUrl" alt="0"><br>

<span><em>{{item.desc}}</em></span>

</li>

</ul>

</div>

<script>

let vm = new Vue({

el:'#box',

data:{

arr:[],

msg:"j9in",

},

mounted:function(){

this.load();

},

methods:{

load:function(){

axios.get("http://localhost:8080/servlet/TestServlet").then(

value=>{

// alert(value.data)

// this.msg=value.data;

this.arr = value.data;

}).catch(

error=>{

alert(error.status)

})

}//load

}

})

</script>

</body>

</html>

《 交互与实例的生命周期 》上 机作业

业 作业  :自动筛选案例

需求说明

1、布局完成自动筛选案例样式,上方为输入框,下面为表格布局

2、表格数据利用 v-for 指令遍历数据生成

3、自定义过滤器实现首字母大写的功能

4、在计算属性中实现动态过滤 data 中的数据项,效果如下图所示:

name    Gender    Age

rick    male    21

demen    male    26

Jack    male    26

John    female    20

Lucy    female    16

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>index</title>

<style>

#box{

width: 400px;

height: 400px;

margin: auto;

}

</style>

</head>

<body>

<script src="https://cdn.bootcss.com/vue/2.5.14/vue.min.js"></script>

<script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>

<div id="box">

<div><span>搜索名称:</span><input type="text" v-model="msg" @blur="find()"><!-- {{msg}} --></div>

<div>

<table v-if="arr2.length>0" border="1">

<tr>

<td>Name</td>

<td>Gender</td>

<td>Age</td>

</tr>

<tr v-for="item in arr2">

<td>{{item.Name | big}}</td>

<td>{{item.Gender}}</td>

<td>{{item.Age}}</td>

</tr>

</table>

</div>

</div>

<script>

let vm = new Vue({

el:'#box',

data:{

arr:[{Name:"rick",Gender:"male",Age:"21"},

{Name:"demen",Gender:"male",Age:"21"},

{Name:"Jack",Gender:"male",Age:"26"},

{Name:"John",Gender:"female",Age:"20"},

{Name:"Lucy",Gender:"female",Age:"16"}],

msg:"",

arr2:[]

},

methods:{

find:function(){

let str = this.msg;

let arr3 = [];

this.arr.forEach(function(item){

if (str.toLowerCase()==((item.Name).slice(0,str.length)).toLowerCase()) {

arr3.push(item);

}

})

this.arr2 = arr3;

}

},

filters:{

big:function(value){

result = value.slice(0,1).toUpperCase()+value.slice(1,value.length);

return result;

},

}

})//alert(stmp.slice(1,5))//从第2个字符开始,到第5个字符;返回"cinn"

</script>

</body>

</html>

以上是 vue生命周期+过滤器+拦截器作业 的全部内容, 来源链接: utcz.com/z/377110.html

回到顶部