vue2.0构建的一个文章阅读应用(一)
本文主要是记录下我使用 vue 构建这样一个文章阅读小应用的具体经过吧,能力有限,有些问题可能表述不正确,望指教。
步骤一,安装 vue-cli,创建webpack项目
npm i -g vue-cli vue init wepack vue-article-app
步骤二,下载相关依赖项
cd vue-article-app npm i npm run dev //运行项目, webpack会编译项目文件,启动服务器,然后我们在 http://localhost:8080/ 中就能看到一个欢迎页
在命令行中键入 Ctrl+C 先停掉服务,继续安装需要应用到的一些资源
npm i vue-router --save //路由 npm i vue-resource --save //XHR请求 npm i bootstrap --save //bootstrap作为UI库 //上面的三个依赖项也可以使用一个命令行就搞定 npm i vue-router vue-resource bootstrap --save
这样需要用到的就都准备好了,接下来就是编码了
步骤三,初始化
main.js 将会作为入口文件,而 App.vue 将会作为应用的初始化组件。先看下目录结构再分别来完善一下这两个文件
├── main.js ├── App.vue ├── components │ ├── ArticleDetail.vue │ ├── ArticleList.vue │ ├── MainNavbar.vue │ ├── NormalNavbar.vue │ ├── NotFoundComponent.vue │ ├── Recommend.vue │ └── ArticleList.vue └── store ├── index.js ├── actions.js ├── mutations.js
下面是main.js
//首先分别引入要用的资源与组件 import Vue from 'vue'; import VueRouter from 'vue-router'; import VueResource from 'vue-resource'; import App from './App'; import ArticleList from './components/ArticleList'; import ArticleDetail from './components/ArticleDetail'; import Recommend from './components/Recommend'; import MainNavbar from './components/MainNavbar'; import NotFoundComponent from './components/NotFoundComponent'; import store from './store'; import 'bootstrap/dist/css/bootstrap.css'; import moment from 'moment/moment.js'; //一个时间转换插件,安装命令 npm i moment --save Vue.use(VueRouter); Vue.use(VueResource); //vue.js中允许使用过滤器来进行文本格式化,以下三个主要是利用 moment.js 格式化时间的哈 Vue.filter('transTime', function (value) { return moment.unix(value).format('YYYY-MM-DD'); }); Vue.filter('transTimeFull', function (value) { return moment.unix(value).format('YYYY-MM-DD HH:mm:ss'); }); Vue.filter('transMin', function (seconds) { seconds = seconds || 180; return Math.ceil(seconds/60); }); //这一块是路由,路由的一些写法用法就要具体参考vue-router的文档了,这里就不细说了哈 const routes = [{ path : '/', components : { default: ArticleList, mainNavbar:MainNavbar } },{ path : '/articleList', components: { default: ArticleList, mainNavbar: MainNavbar } },{ path: '/article-detail/:articleId', name: 'article-detail', component: ArticleDetail, },{ path: '/recommend', component : Recommend, }]; const router = new VueRouter({ // mode: 'history', routes }); /* eslint-disable no-new */ // 实例化我们的Vue var app = new Vue({ el: '#app', router, store, ...App, });
上面就是 main.js 文件啦,下面是 App.vue
<template> <div id="wrapper"> <router-view name="mainNavbar"></router-view> /*这个是一个顶栏,具体看之后的MainNavbr.vue*/ <transition :name="transitionName"> /*这里具体用到过渡效果,可以查看文档来学习具体用法,这里我给他绑定了一个名字,这是为了设定路由过渡效果用的*/ <router-view></router-view> </transition> </div> </template> <style> img{ width: 100%; } .slide-up-enter-active { transition: all .3s ease; } .slide-up-enter, .slide-up-leave-active { transform: translateY(310px); } </style> <script> export default { data(){ return {transitionName: ''} }, /*这里使用 watch 来监测路由的,如果路由指向'/recommend' 那就使用 'slide-up' 的过渡效果,如果不是的话就不绑定效果*/ watch: { '$route' (to, from) { if(to.path == '/recommend') { this.transitionName = 'slide-up' }else{ this.transitionName = '' } } } } </script>
内容写得其实不够详细,但是看注释应该能看得明白,有时间了再细细按步骤写。上面初始化之后,其实就是分别建好要用的一些组件,然后再是拿数据,处理数据驱动页面变化啊之类的。
这里算是挖了个坑吧,写的实在是太不详细了,项目地址先放上来[vue-article-app]
相关推荐
前端小白 2020-07-19
85423468 2020-07-19
bowean 2020-07-05
82344699 2020-07-05
85423468 2020-06-26
ggkuroky 2020-06-17
89711338 2020-06-14
80437700 2020-06-02
85394591 2020-05-31
80437700 2020-05-15
85394591 2020-05-15
80324291 2020-05-11
80437700 2020-05-11
85394591 2020-05-10
85423468 2020-05-05
87133050 2020-04-30
85497718 2020-04-29