Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
node-sample
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
周韬
node-sample
Commits
af4efdd4
Commit
af4efdd4
authored
Aug 04, 2016
by
Evan You
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pagination
parent
392bc154
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
9 deletions
+49
-9
App.vue
src/App.vue
+31
-5
News.vue
src/views/News.vue
+18
-4
No files found.
src/App.vue
View file @
af4efdd4
...
@@ -2,18 +2,38 @@
...
@@ -2,18 +2,38 @@
<div
id=
"app"
>
<div
id=
"app"
>
<div
class=
"header"
>
<div
class=
"header"
>
<img
class=
"logo"
src=
"./assets/logo.png"
>
<img
class=
"logo"
src=
"./assets/logo.png"
>
<ul>
<li>
<router-link
v-if=
"page > 1"
:to=
"'/news/' + (page - 1)"
>
prev
</router-link>
<a
v-else
class=
"disabled"
>
prev
</a>
</li>
<li>
<router-link
v-if=
"hasMore"
:to=
"'/news/' + (page + 1)"
>
more...
</router-link>
<a
v-else
class=
"disabled"
>
more...
</a>
</li>
<li><router-link
to=
"/about"
>
About
</router-link></li>
</ul>
</div>
</div>
<ul>
<li><router-link
to=
"/news/1"
>
page 1
</router-link></li>
<li><router-link
to=
"/news/2"
>
page 2
</router-link></li>
<li><router-link
to=
"/about"
>
About
</router-link></li>
</ul>
<transition
name=
"view"
mode=
"out-in"
>
<transition
name=
"view"
mode=
"out-in"
>
<router-view
class=
"view"
></router-view>
<router-view
class=
"view"
></router-view>
</transition>
</transition>
</div>
</div>
</
template
>
</
template
>
<
script
>
export
default
{
computed
:
{
page
()
{
return
Number
(
this
.
$route
.
params
.
page
)
},
hasMore
()
{
const
{
storiesPerPage
,
topStoryIds
}
=
this
.
$store
.
state
return
this
.
page
<
Math
.
ceil
(
topStoryIds
.
length
/
storiesPerPage
)
}
}
}
</
script
>
<
style
>
<
style
>
body
{
body
{
font-family
:
Roboto
,
Helvetica
,
sans-serif
;
font-family
:
Roboto
,
Helvetica
,
sans-serif
;
...
@@ -27,4 +47,10 @@ body {
...
@@ -27,4 +47,10 @@ body {
.view-enter
,
.view-leave-active
{
.view-enter
,
.view-leave-active
{
opacity
:
0
;
opacity
:
0
;
}
}
a
{
color
:
#4fc08d
;
}
a
.disabled
{
color
:
#999
;
}
</
style
>
</
style
>
src/views/News.vue
View file @
af4efdd4
...
@@ -2,10 +2,12 @@
...
@@ -2,10 +2,12 @@
<div>
<div>
<h2>
News
</h2>
<h2>
News
</h2>
<transition
:name=
"transition"
>
<transition
:name=
"transition"
>
<ul
class=
"news-list"
:key=
"$route.params.page"
>
<div
class=
"news-list"
:key=
"$route.params.page"
>
<news-item
v-for=
"item in news"
:key=
"item.id"
:item=
"item"
>
<transition-group
tag=
"ul"
name=
"item"
>
</news-item>
<news-item
v-for=
"item in news"
:key=
"item.id"
:item=
"item"
>
</ul>
</news-item>
</transition-group>
</div>
</transition>
</transition>
</div>
</div>
</
template
>
</
template
>
...
@@ -66,4 +68,16 @@ export default {
...
@@ -66,4 +68,16 @@ export default {
-webkit-transform
:
translate
(
-30px
,
0
);
-webkit-transform
:
translate
(
-30px
,
0
);
transform
:
translate
(
-30px
,
0
);
transform
:
translate
(
-30px
,
0
);
}
}
.item-move
,
.item-enter-active
,
.item-leave-active
{
transition
:
all
.5s
cubic-bezier
(
.55
,
0
,
.1
,
1
);
}
.item-enter
{
opacity
:
0
;
transform
:
translate
(
30px
,
0
);
}
.item-leave-active
{
position
:
absolute
;
opacity
:
0
;
transform
:
translate
(
30px
,
0
);
}
</
style
>
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment