我爱编程

ZYU商城项目开发记录

2018-05-06  本文已影响91人  卓三阳
前言

在学习React.js后,为了将学习React.js的相关知识综合运用起来,我决定把自己用Vue.js写的ZYU商城项目用React.js改写一下。这样后台和数据库都可以重复利用,一些静态资源也可以共享,所以对该项目重新回顾,总结其中的经验和技巧。

这里主要关注于前端,后台(express)和数据库(mongodb)不涉及。


1.项目结构

项目由vue-cli脚手架工具直接生成。这里主要总结一下,在项目目录中比较容易混淆的几点。

项目结构中我们有两个静态资产目录:src/assets和static/

src/assets存放需要webpack打包的静态资源,这些资源作为模块依赖项由Webpack解决。一般存放项目开发中需要引用的资源。(相对路径访问)需要用require引入

相比之下,static/下的资源, Webpack根本不处理:它们直接被复制到最终目的地,并且具有相同的文件名。您必须使用绝对路径(/static/...)来引用这些文件。

build/

该目录保存开发服务器和生产webpack版本的实际配置。通常情况下,除非要定制Webpack加载器,否则不需要触摸这些文件,在这种情况下,您应该看看build/webpack.base.conf.js

config/index.js

这是主要的配置文件,它为构建设置提供了一些最常见的配置选项。开发过程中的API代理和与后端框架集成

vuejs-template


2.组件

组成: 模态框组件=弹出框+遮罩层
弹出框分为顶部栏+展示内容+按钮,其中展示内容和按钮可以作为插槽动态添加内容。

父子通信:利用父子通信机制来控制组件的显示。
父->子:属性绑定控制模态框的展示
子->父 通过事件机制关闭模态框


3.数据接口代理

web项目(node)开发中打通前后台


4.CSS
@media screen and (min-width: 1200px) {

}

@media only screen and (min-width: 992px)  and (max-width:1200px){

}

@media only screen and (min-width: 768px)  and (max-width:991px){

}


@media only screen and (max-width: 767px) {
}

response.png App.vue.png use.png
这样以来每个组件的代码瞬间清晰很多。
但是这种方法不能做到按需加载svg,当symbol越来越多,代码结构也混乱。因此我们可以使用
vue-svg-icon插件来帮助我们管理svg 文件。
使用参考:在 React、Vue项目中使用 SVG
5.引用的插件

(1)vue-router
vue路由

(2)axios
异步请求插件

(3)vue-infinite-scroll
无限滚动加载数据(类似于分页加载数据),主要实现商品的滚动加载

(4)vue-lazy-load
图片懒加载

(5)vuex
vue的状态管理器,项目中管理购物车数量。个人总结的话,一般情况下,需要用vuex管理的状态具有两个特征:


6.实用模块

参考Vue.js作者尤雨溪使用范例中的一个金额格式化模块currency

Vue.filter("currency",currency);   //过滤器
上一篇下一篇

猜你喜欢

热点阅读