2016-11-07 20:38:51 +00:00
|
|
|
<template>
|
2016-12-11 15:40:18 +00:00
|
|
|
<div class="container">
|
|
|
|
<h2>User</h2>
|
2016-12-11 16:10:35 +00:00
|
|
|
<h3>{{ user.name }}</h3>
|
|
|
|
<h4>@{{ user.username }}</h4>
|
|
|
|
<p>Email : {{ user.email }}</p>
|
2016-12-16 17:12:38 +00:00
|
|
|
<p><nuxt-link to="/users">List of users</nuxt-link></p>
|
2016-11-07 20:38:51 +00:00
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
import axios from 'axios'
|
|
|
|
|
|
|
|
export default {
|
2016-12-16 16:46:30 +00:00
|
|
|
transition (to, from) {
|
|
|
|
if (!from || !from.params.id || !to.params.id) return 'fade'
|
|
|
|
return +to.params.id > +from.params.id ? 'slide-left' : 'slide-right'
|
|
|
|
},
|
2016-11-17 10:57:02 +00:00
|
|
|
data ({ params, error }) {
|
2016-11-27 18:26:42 +00:00
|
|
|
return axios.get(`https://jsonplaceholder.typicode.com/users/${params.id}`)
|
2016-12-11 16:10:35 +00:00
|
|
|
.then((res) => { return { user: res.data } })
|
2016-11-17 10:57:02 +00:00
|
|
|
.catch(() => {
|
|
|
|
error({ message: 'User not found', statusCode: 404 })
|
|
|
|
})
|
2016-11-07 20:38:51 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
2016-11-07 20:58:56 +00:00
|
|
|
<style scoped>
|
2016-12-11 15:40:18 +00:00
|
|
|
.container
|
|
|
|
{
|
|
|
|
text-align: center;
|
|
|
|
overflow: hidden;
|
2016-12-11 16:10:35 +00:00
|
|
|
min-height: 440px;
|
2016-12-16 16:46:30 +00:00
|
|
|
transition: all .5s cubic-bezier(.55,0,.1,1);
|
|
|
|
}
|
|
|
|
.slide-left-enter,
|
|
|
|
.slide-right-leave-active {
|
|
|
|
opacity: 0;
|
|
|
|
transform: translate(30px, 0);
|
|
|
|
}
|
|
|
|
.slide-left-leave-active,
|
|
|
|
.slide-right-enter {
|
|
|
|
opacity: 0;
|
|
|
|
transform: translate(-30px, 0);
|
2016-12-11 15:40:18 +00:00
|
|
|
}
|
2016-11-07 20:38:51 +00:00
|
|
|
</style>
|