当前位置: 首页 > Web前端 > HTML

用vue.js搭建知乎日报

时间:2023-04-02 22:59:21 HTML

Vue.js是我的最爱,知乎也是我的最爱。我用vue做了一个知乎日报项目地址:Github地址在线预览demo设计:1.设计没有遵循知乎客户端的交互和UI设计。我自己做了一个。颜色以黑、白、灰为主。本来想加入知乎的蓝色,但是我的设计功底太差,所以放弃了蓝色,只用了黑白灰。2、日常入口采用无边框设计,只增加一条浅灰色的分割线来区分。3.整个网页是一个单页面应用(SinglePageWebApp),所有数据由vuex管理,在store统一管理。预览:涉及技术:项目使用vue-cli搭建打包,配合vue全家桶(vue、vuex、vue-router)进行基础样式的编码和开发。Basscss用于设计级联样式表。Basscss简洁高效,复用性强网络请求使用axios后台,使用Node.jsvuex架构:为getters、mutations、actions变量名设置命名空间,否则store会写的太大,命名肯定会乱。示例://actionstypesexportconstFECTH_NEWS_LATEST='FECTH_NEWS_LATEST'//最新消息列表//muttionstypesexportconstTOGGLE_NEWS_LATEST='TOGGLE_NEWS_LATEST'//getterstypesexportconstDONE_NEWS_LIST_ROOT='DONE_NEWS_LIST_ROOT'//有意义写最新消息榜单梗点名评论。其实也没有必要把store分成modules,但是为了后续的开发还是分一下吧。使用getter将状态(state)和数据(data)发送到页面模板(template)。发送数据有两种或三种方式。按照自己的习惯来。我这样做:[types.DONE_NEWS_LIST_ROOT]:state=>{returnstate.NewsListRoot}computed:{...mapGetters(['DONE_NEWS_LATEST','DONE_LOADING_ONE','DONE_LOADING_TWO','DONE_NEWS_LIST_ROOT'])}

mutationsandactions:a,mutations用于处理同步的事情,比如为状态中的变量赋值;b、actions用来处理异步的东西,比如网络请求;c,但是actions也可以做同步的事情,不过最好按照vuex的建议去做:如何处理mutations中的同步操作,详见我的github,记得点赞的:vuexaddressstoreaddress遇到的困难:cross-领域。跨域是前端老生常谈的问题了。我使用节点进行传输。示例代码如下:router.get('/news/latest',function(req,res,next){varoptions={method:"GET",url:"http://news-at.zhihu.com/api/4/news/latest"};request(options,function(error,response,body){if(error)thrownewError(error);res.json(JSON.parse(body))});});2.日常细节渲染。日报的详细内容是一个html格式的字符串,数据请求和渲染是异步的。一般情况下,浏览器无法解析成功,但是vue提供的一个v-html方法可以处理。示例代码如下:
其中DONE_NEWS_DETAIL是数据的后记:大家多交流,互相学习,写的不对请指正不好!

最新推荐
猜你喜欢