一款简洁美观的知乎日报

轻松查看知乎日报内容, 收藏你喜欢的文章

效果图

首页

查看文章

主题日报

收藏文章

热门文章

首页切换日期

简介

一个适合用来学习Vuejs的纯前端项目, 使用vue-router做前端路由跳转, 结合vuex和localStroage开发了收藏功能, 使用axios进行资源请求.

在页面里使用watch来监听需要改变的值, filter将数据格式化.

开发流程

首先使用vue-cli按提示创建好项目, 然后依自己需要安装依赖, 我选择了我觉得挺好

看的Materialize作为UI框架, 还有toastr,

一个弹出toast的库, 然后参考了Gallery和

colorhurt, 这两个网站的风格, 搭建页面.

npm install materialize-css toastr --save

接着安装完全部需要的依赖, 删除不需要的文件.

因为跨域的原因, 对config/index文件里面的proxyTable选项进行设置, 为了开发的时候方便获取数据, 详细内容参考文档.

proxyTable: {

'/api': {

target: 'http://news-at.zhihu.com',

changeOrigin: true

}

},

然后在src/main导入需要的文件

添加几个需要的组件, 先预留, 之后在开发.

顶部导航栏compoments/navbar, 主要功能是导航, 和显示路由的位置;

页脚compoments/footer, 显示网站信息;

首页compoments/latest, 显示知乎日报的最新消息;

查看文章页面compoments/story, 查看选中的文章, 和文章评论;

显示主题日报页面compoments/sunject, 查看不同的主题信息;

显示已收藏文章的页面, 查看自己收藏的文章页面.

再来就是配置前端路由, 将组件引入到router/index文件里, 为每个路由加上name字段, 方便在组件里调用.

这样做是因为不管是文章页还是主题页都有唯一的参数id, 使用这个参数方便跳转, 和跳转之后利用id进行资源请求.

link

然后将放到App.vue里面.

路由配置完后, 使用localStorage来开发收藏文章的功能. 就是将文章的内容存储到本地, 这样就可以在没网络的时候看文章了. localStore.js

主要有

addLocalStory, 添加一个文章;

removeLocalStory, 删除一个文章;

totalLocalStoryNum, 返回收藏的文章总数;

clearLocalStories, 清除全部收藏文章;

有了这几个方法就可以对收藏的文章进行管理.

接下来完成组件部分, 对照materialize的文档写好页面,

这里是花时间最多的地方, 布一个好看的界面十分困难, 改来改去还是有不满意的地方, 使用Grid布局, 加上需要的元素, 其他几个组件同理, 不在赘述.

需要注意的是, 知乎日报的API返回的文章页面是一个包含html的字符串, 使用v-html渲染到页面上, 但是没有css文件, 解决的方法是将知乎日报文章页面的css文件(请求单个文章时会获得文章页css文件的url)保存到src/assets目录里面, 然后在story.vue里面导入

@import "../assets/zhihu.daily.css";

另一个问题是文章内的图片打不开, 解决的方法是在每张图片的src前面加上Images.weserv的前缀, 应用Vuejs的filter完成.

页面基本写好, 把请求到的数据放上去后, 就基本完成了. 但是发现在导航栏切换主题日报的时候, 虽然路由变了

然而主题页页面不更新, ajax请求也没发送. 解决方法是使用

Vuejs的watch来监听路由的变化, 一旦路由的值变了, 就发送一个新的请求来获取数据, 同理还有首页里的日期值变化.

基本完成, 将组件内请求数据的url换成真实的地址.

最后使用webpack打包成静态资源/dist, 这样就可以用后端服务器来运行项目了.

结语

使用Vuejs等框架几乎不再需要进行DOM操作, 而且开发的时候感觉更有条理, 出现问题容易知道问题出在哪里.

同时约束性更高, 代码有一定的格式, 以前使用jQuery的话很容易写出一长条的代码, 出错了也不好修改.

ps: 找工作中, 求推荐一些比较新的前端开发面试题目, 谢谢.

Build Setup

# install dependencies

npm install

# serve with hot reload at localhost:8080

npm run dev

# build for production with minification

npm run build

# build for production and view the bundle analyzer report

npm run build --report

# webpack打包后使用http-server后端快速启动查看项目

npm run start

License

知乎日报API

written by xrr2016,欢迎issue,fork,star.

vuejs知乎_GitHub - xrr2016/zhihu-daily: 知乎日报(Vuejs)相关推荐

  1. java 应用 知乎_GitHub - liangsonghua/zhihu: JAVA仿知乎与redis应用

    用户:admin/admin liangsonghua/liangsonghua 注册登陆: 拦截器: @Component public class PassportInterceptor impl ...

  2. python 类 对象 知乎_GitHub - egrcc/zhihu-python: 获取知乎内容信息,包括问题,答案,用户,收藏夹信息...

    zhihu-python:获取知乎信息 注意: 本项目不再维护更新! zhihu-python 采用 Python2.7 编写,用来方便地获取知乎上各种内容的信息,并且可以方便地将答案备份导出为 tx ...

  3. python填空题及答案知乎_GitHub - HSINAN/zhihu-python: 获取知乎内容信息,包括问题,答案,用户,收藏夹信息...

    zhihu-python:获取知乎信息 Author: Update:09/09 2015 zhihu-python 采用 Python2.7 编写,用来方便地获取知乎上各种内容的信息,并且可以方便地 ...

  4. 红芯浏览器真的“安全”吗? - 杰洛特的文章 - 知乎 https://zhuanlan.zhihu.com/p/42482349

    红芯浏览器真的"安全"吗? - 杰洛特的文章 - 知乎 https://zhuanlan.zhihu.com/p/42482349 红芯浏览器真的"安全"吗? ...

  5. JuMP: 用Julia进行优化建模及求解- 覃含章的文章 - 知乎 https://zhuanlan.zhihu.com/p/40807662

    JuMP: 用Julia进行优化建模及求解 - 覃含章的文章 - 知乎 https://zhuanlan.zhihu.com/p/40807662 0. 为什么要用Julia做优化? 本文是我在Jul ...

  6. python实用脚本 知乎_Python 爬虫模拟登陆知乎

    在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率.由于电影天堂上的资源获取权限是所有人都一样的,所以不需要进行登录验证操作,写完那篇文章后又花了些时间研究了 ...

  7. 知乎引流、知乎带货工具、知乎选品、数据分析、带货软件(1)

    知乎引流.知乎带货工具.知乎选品.数据分析.带货软件 官网:www.5778.pro 百万海量级数据,千万级流量洼地,实时动态追踪 知好物是一知乎带货工具,帮助您快速找到蓝海问题以及热门问题,并实时监 ...

  8. 华数java 知乎_BAT都有意,知乎为什么和腾讯走到了一起?

    双 11 七年之痒前夕,无论是 这样的争论轰炸之余,看客们难免感官疲劳,渴望一些新谈资,知乎获腾讯搜狗融资的消息适时得出现了. 有意思的是,知乎 "知乎刚完成了 5500 万美元C轮融资,新 ...

  9. 中国知网html阅读说明什么区别,知网研学和中国知网的区别

    都是一家,都差不多的,没有太大差异,一个搜索比较大众,另个一比较专业. 知网研bai学(原E-Study)集文献检索.下载.管du理.笔记.写作zhi.投稿于一体dao,为学习和研究提供全过程支持. ...

最新文章

  1. linux proc/xx/maps文件分析
  2. 控制信号(单脉冲信号)的跨时钟域传输问题
  3. VC++中进程间相互通信的十一种方法
  4. Django | 执行项目下指定的脚本
  5. Xcode代码块的创建、使用和删除
  6. python中的数据类型有哪些是可阅读,Python中典型的数据类型中哪个只能阅读不能修改...
  7. AAAI 2019 Oral | 让TA说你想听的—基于音/视频特征解离的讲述者人脸生成
  8. python接口测试面试_面试秘籍 | 一文搞定面试中接口测试问题
  9. 大连东软信息学院附近java_大连东软信息学院暑期实训java项目答辩答案
  10. 解决VS2017中使用scanf函数报错的问题
  11. linux下python安装包_Linux服务器中安装python包管理工具pip
  12. 人的一生,到底在追求什么呢?
  13. ubuntu下耳机没有声音问题
  14. USB设备运行不正常,windows无法识别的问题
  15. python实现kd树以及最近邻查找算法
  16. 电脑开机提示 EFI PXE 0 for IPv6
  17. web服务器—nginx
  18. 小白鼠喝毒水问题(一分为二的思想)
  19. T48566 【zzy】yyy点餐
  20. 每个程序员都应该阅读的最有影响力的书是什么?

热门文章

  1. 3d 角色血条制作方案:解决近大远小的策略
  2. ACdream1735 输油管道
  3. 背压/反压/BackPressure
  4. 在Vue中使用Echarts来实现(数据可视化)
  5. brpc学习笔记(1)
  6. MSF(2)——各种木马的生成及简单的免杀
  7. 2021 年最新的个人录制的前后端真正的免费编程学习视频
  8. 广西计算机对口升学学校有哪些,广西职高对口升学有哪些专业
  9. java 音频可视化_OpenGL ES 实现可视化实时音频
  10. Matlab Robotic Toolbox安裝