vue - blog开发学习2

首页博客列表的开发

1、修改index.vue,使能够支持列表功能

<template><div><PostList v-for="(item,index) in postList" :title="item.title" :content="item.content" :postCount="postCount":key="index"></PostList></div>
</template><script>import PostList from '@/components/post-list'export default {name: "index",components: {PostList},data() {return {postList: [{title: '测试1',content: '啊啊啊啊啊啊啊啊啊啊啊'},{title: '测试1',content: '啊啊啊啊啊啊啊啊啊啊啊'},{title: '测试1',content: '啊啊啊啊啊啊啊啊啊啊啊'},{title: '测试1',content: '啊啊啊啊啊啊啊啊啊啊啊'},],postCount: 100}}}
</script><style scoped></style>

2、添加PostList自定义组件,自定义组件中使用到了iView中的Card标签

<template><div style="background: #eee;padding: 1px;"><Card :bordered="false"><p>{{title}}</p><p>{{content}}</p></Card></div>
</template><script>export default {name: "PostList",props: {title: {type: String,default: ''},content: {type: String,default: ''},postCount: {type: Number,default: 0}}}
</script><style scoped></style>

3、效果(访问根路径的话,会自动渲染index.vue中的内容,具体看router/index.js中的路由配置)

4、用router-link生成一个可点击的链接,使能够跳转到具体内容页面(post.vue)--页面还是渲染到home.vue中,修改post-list.vue组件,添加了一个router-link,这样,再点击每一块的时候都会跳转到post.vue中,并且会带着postId值

<template><div style="background: #eee;padding: 1px; margin-left: 10%;margin-right: 10%"><router-link tag="div" :to="{name:'Post',params:{postId:postId}}"><Card :bordered="false"><p>{{title}}</p><p>{{content}}</p></Card></router-link></div>
</template><script>export default {name: "PostList",props: {postId: {type: String,default: ''},title: {type: String,default: ''},content: {type: String,default: ''},postCount: {type: Number,default: 0}},methods: {}}
</script><style scoped></style>

5、修改home页的menu标签,改成根据数据自动渲染菜单,zIndex这个是为了不覆盖菜单

<template><div class="layout"><Layout><Header :style="{position: 'fixed', width: '100%',zIndex:'900'}"><Menu mode="horizontal" theme="dark" active-name="1"><div class="layout-logo"><img src="static/img/logo.png" alt=""></div><div class="layout-nav"><MenuItem v-for="(item,index) in menuList" :name="index" :to="item.to" :key="index"><Icon :type="item.icon"></Icon>{{item.name}}</MenuItem></div></Menu></Header><Content :style="{margin: '88px 0 0', background: '#fff', minHeight: '500px'}"><router-view></router-view></Content><Footer class="layout-footer-center">2011-2016 &copy; TalkingData</Footer></Layout></div>
</template><script>export default {name: "home",data() {return {menuList:[{name:'首页',icon:'ios-navigate',to:'index'},{name:'类别',icon:'ios-keypad',to:'postClass'},{name:'新建',icon:'ios-analytics',to:'create'},{name:'修改',icon:'ios-paper',to:'edit'},{name:'关于我',icon:'ios-paper',to:'aboutMe'}]}}}
</script><style scoped>@import "../static/css/home.css";</style>

6、首页基本功能写完后,使用mock模拟后台返回的json数据,此方式基于axios发送请求方式,因此安装axios

①npm install axios --save

②安装完成之后,将axios绑定为全局函数,因此在main.js中添加

import axios from 'axios'Vue.prototype.$axios = axios使用时: this.$axios.get('api/getNewsList')
.then((response)=>{this.newsList=response.data.data;
}).catch((response)=>{console.log(response);
})或者import axios from 'axios'
import VueAxios from 'vue-axios'Vue.use(VueAxios,axios);使用:
this.axios.get('api/getNewsList').then((response)=>{this.newsList=response.data.data;}).catch((response)=>{console.log(response);})

③安装mockjs

npm install mockjs --save-dev   //开发使用  所以加上dev

④修改main.js,添加自定义的mock.js(http://mockjs.com/)

https://blog.csdn.net/xiaoxiaojie12321/article/details/81301399

require('./mock/mock.js')

⑤自定义mock.js

//引入mockjs
const Mock = require('mockjs')
// 获取mock.Random对象
const Random = Mock.Random
//mock数据
const data = () => {let posts = []for (let i = 0; i < 50; i++) {let post = {title: Random.csentence(5, 30),content: Random.csentence(4000, 5000)}posts.push(post)}return {posts: posts}
}Mock.mock('/api/posts','get',data)

⑥修改index.vue中的获取数据的方式

    created() {this.$axios({url: '/api/posts',method: 'get'}).then(response => {this.postList = response.data.postsconsole.log(this.postList)})}

⑦添加bootstrap支持

npm install bootstrap jquery --save

webpack.base.conf.js

  plugins:[new webpack.ProvidePlugin({$: "jquery",jQuery: "jquery","windows.jQuery": "jquery"})],

main.js

//boostrap
import $ from 'jquery'
import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap/dist/js/bootstrap.min.js'

整体:

点击每一个框:

posted @ 2019-05-26 18:51 巡山小妖N 阅读(...) 评论(...) 编辑 收藏

vue - blog开发学习2相关推荐

  1. vue - blog开发学习6

    vue - blog开发学习6 1.问题,如下图,使用iviewui中的card导致页面不能出现滚动条(不太会弄,在网上查了一个vue组件vuescroll,因此使用这个做滚动条) 2.安装vuesc ...

  2. vue - blog开发学习5

    vue - blog开发学习5 基本功能和后台联调 1.首页的所有博客 因为是前后台都是本地开发,所以前端vue需要设置proxy:修改/config/index.js中的这个proxyTable p ...

  3. vue - blog开发学习4

    vue - blog开发学习4 1.新建页面的修改,集成富文本编辑 edit-post.vue(新建和修改都用该组件) <template><div class="edit ...

  4. vue - blog开发学习3

    vue - blog开发学习3 1.添加less 和less-loader支持 npm install less less-loader --save-dev 2.新建main.less,将这个样式添 ...

  5. vue - blog开发学习1

    vue - blog开发学习1 1.安装vue-cli vue intall -g vue-cli 2.创建项目 vue init webpack nblog 3.按提示要求配置项目 ? Projec ...

  6. vue - blog开发学7

    vue - blog开发学7 将基本的项目部署到linux上(前后台只是实现了基本的功能,本次只是记录一些基本的开发流程,完善,等后续) 1.linux环境准备(我用的是阿里云服务器) ①jre.my ...

  7. 【Vue前端开发学习】第2章,Vue项目目录结构

    文章目录 前言 一.新增router文件夹及其配置方法 二.新增store文件夹及其配置方法 三.index.html.App.vue.main.js三者之间的联系 前言   上一章节,通过Pycha ...

  8. 五、Vue模块化开发学习笔记——JavaScript原始功能、匿名函数的解决方案、使用模块作为出口、CommonJS、ES6 export和import的使用

    一.JavaScript原始功能 -在网页开发的早期,js制作作为一种脚本语言,做一些简单的表单验证或动画实现等,那个时候代码还是很少的. 那个时候的代码是怎么写的呢? 直接将代码写在<scri ...

  9. Vue 官网学习笔记

    VUE介绍 vue git 地址:https://github.com/vuejs/vue/projects Vue 官网教程地址:https://cn.vuejs.org/v2/guide/inst ...

最新文章

  1. 部队人员官兵请假管理系统
  2. iOS App的几种多视图介绍
  3. BASISI系统中如何配置web service
  4. 吴恩达 coursera ML 第六课总结+作业答案
  5. boost::multiprecision模块debug_adaptor相关的测试程序
  6. 编译安装Centos7.2+Apache2.4.25+PHP7.2.10+Mysql5.6.16
  7. jettytomcat对待表单过长问题
  8. c语言闰年的判断条件DS1302,DS1302驱动程序(平年和闰年天数自动调整)
  9. python3从零开始学习_从零开始学习PYTHON3讲义(十五)让画面动起来
  10. 从Oracle到PostgreSQL:Storage Index 特性 vs BRIN 索引
  11. MyIbatis使用trim灵活的插入
  12. Centos 启动过程详解
  13. mysql查询每十分钟的数据_sql查询语句查询每10分钟的数据
  14. 《最受欢迎的男友职业排行榜Top10》
  15. 大一python选择题题库及答案_python选择题库
  16. 第四章: 元语言抽象
  17. 梦想贩卖机v2-1.069
  18. Spark血缘字段解析
  19. 今日头条的排名算法_今日头条旗下悟空问答的排名算法规则
  20. 智能终端代替传统设备 手机APP离线识别车牌号

热门文章

  1. linux ubuntu安装教程6,64位Ubuntu下安装IE6步骤
  2. cocos2d-lua 搓牌效果_4款热门面霜评测,欧莱雅效果一般,艾珂薇性价比高,菲洛嘉最贵...
  3. 重庆邮电大学计算机2019湖北分数线,重庆邮电大学2019各省高考录取分数线 投档分数线是多少...
  4. java课程总结_java课程总结报告.doc
  5. mysql sort aborted_mysql排序中断(Sort aborted)-mysql临时文件无法写入
  6. linux 工具 SecureCRT 使用 rz 和 sz 命令
  7. 【CentOS】EOF使用
  8. django mysql connector,MySQL Connector / Python作为Django引擎?
  9. matlab 邵玉斌,matlab 清华大学出版社 邵玉斌编写的《通信系统建模与仿真实例分析》一书的所有MATLAB和SIMULINK代码 - 下载 - 搜珍网...
  10. c语言一维数组课件,第9章:c语言一维数组课件