当前位置: 首页 > news >正文

沧州商城网站建设wordpress置顶浮标

沧州商城网站建设,wordpress置顶浮标,深圳建设局投标网站,清风网站建设文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说下你的vue项目的目录结…

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。

面试官:说下你的vue项目的目录结构,如果是大型项目你该怎么划分结构和划分组件呢?
在这里插入图片描述

一、为什么要划分

使用vue构建项目,项目结构清晰会提高开发效率,熟悉项目的各种配置同样会让开发效率更高

在划分项目结构的时候,需要遵循一些基本的原则:

  • 文件夹和文件夹内部文件的语义一致性
  • 单一入口/出口
  • 就近原则,紧耦合的文件应该放到一起,且应以相对路径引用
  • 公共的文件应该以绝对路径的方式从根目录引用
  • /src 外的文件不应该被引入

文件夹和文件夹内部文件的语义一致性
我们的目录结构都会有一个文件夹是按照路由模块来划分的,如pages文件夹,这个文件夹里面应该包含我们项目所有的路由模块,并且仅应该包含路由模块,而不应该有别的其他的非路由模块的文件夹

这样做的好处在于一眼就从 pages文件夹看出这个项目的路由有哪些

单一入口/出口
举个例子,在pages文件夹里面存在一个seller文件夹,这时候seller 文件夹应该作为一个独立的模块由外部引入,并且 seller/index.js 应该作为外部引入 seller 模块的唯一入口

// 错误用法
import sellerReducer from 'src/pages/seller/reducer'// 正确用法
import { reducer as sellerReducer } from 'src/pages/seller'

这样做的好处在于,无论你的模块文件夹内部有多乱,外部引用的时候,都是从一个入口文件引入,这样就很好的实现了隔离,如果后续有重构需求,你就会发现这种方式的优点

就近原则,紧耦合的文件应该放到一起,且应以相对路径引用
使用相对路径可以保证模块内部的独立性

// 正确用法
import styles from './index.module.scss'
// 错误用法
import styles from 'src/pages/seller/index.module.scss'

举个例子

假设我们现在的 seller 目录是在 src/pages/seller,如果我们后续发生了路由变更,需要加一个层级,变成 src/pages/user/seller

如果我们采用第一种相对路径的方式,那就可以直接将整个文件夹拖过去就好,seller 文件夹内部不需要做任何变更。

但是如果我们采用第二种绝对路径的方式,移动文件夹的同时,还需要对每个 import 的路径做修改

公共的文件应该以绝对路径的方式从根目录引用
公共指的是多个路由模块共用,如一些公共的组件,我们可以放在src/components

在使用到的页面中,采用绝对路径的形式引用

// 错误用法
import Input from '../../components/input'
// 正确用法
import Input from 'src/components/input'

同样的,如果我们需要对文件夹结构进行调整。将 /src/components/input 变成 /src/components/new/input,如果使用绝对路径,只需要全局搜索替换

再加上绝对路径有全局的语义,相对路径有独立模块的语义

/src 外的文件不应该被引入
vue-cli脚手架已经帮我们做了相关的约束了,正常我们的前端项目都会有个src文件夹,里面放着所有的项目需要的资源,js,css, png, svg 等等。src 外会放一些项目配置,依赖,环境等文件

这样的好处是方便划分项目代码文件和配置文件

二、目录结构

单页面目录结构

project
│  .browserslistrc
│  .env.production
│  .eslintrc.js
│  .gitignore
│  babel.config.js
│  package-lock.json
│  package.json
│  README.md
│  vue.config.js
│  yarn-error.log
│  yarn.lock
│
├─public
│      favicon.ico
│      index.html
│
|-- src|-- components|-- input|-- index.js|-- index.module.scss|-- pages|-- seller|-- components|-- input|-- index.js|-- index.module.scss|-- reducer.js|-- saga.js|-- index.js|-- index.module.scss|-- buyer|-- index.js|-- index.js

多页面目录结构

my-vue-test:..browserslistrc
│  .env.production
│  .eslintrc.js
│  .gitignore
│  babel.config.js
│  package-lock.json
│  package.json
│  README.md
│  vue.config.js
│  yarn-error.log
│  yarn.lock
│
├─public
│      favicon.ico
│      index.html
│
└─src├─apis //接口文件根据页面或实例模块化│      index.js│      login.js│├─components //全局公共组件│  └─header│          index.less│          index.vue│├─config //配置(环境变量配置不同passid等)│      env.js│      index.js│├─contant //常量│      index.js│├─images //图片│      logo.png│├─pages //多页面vue项目,不同的实例│  ├─index //主实例│  │  │  index.js│  │  │  index.vue│  │  │  main.js│  │  │  router.js│  │  │  store.js│  │  ││  │  ├─components //业务组件│  │  └─pages //此实例中的各个路由│  │      ├─amenu│  │      │      index.vue│  │      ││  │      └─bmenu│  │              index.vue│  ││  └─login //另一个实例│          index.js│          index.vue│          main.js│├─scripts //包含各种常用配置,工具函数│  │  map.js│  ││  └─utils│          helper.js│├─store //vuex仓库│  │  index.js│  ││  ├─index│  │      actions.js│  │      getters.js│  │      index.js│  │      mutation-types.js│  │      mutations.js│  │      state.js│  ││  └─user│          actions.js│          getters.js│          index.js│          mutation-types.js│          mutations.js│          state.js│└─styles //样式统一配置│  components.less│├─animation│      index.less│      slide.less│├─base│      index.less│      style.less│      var.less│      widget.less│└─commonindex.lessreset.lessstyle.lesstransition.less

小结
项目的目录结构很重要,因为目录结构能体现很多东西,怎么规划目录结构可能每个人有自己的理解,但是按照一定的规范去进行目录的设计,能让项目整个架构看起来更为简洁,更加易用

http://www.yayakq.cn/news/72938/

相关文章:

  • 个人网站备案 淘宝客石家庄建设网站
  • 网站怎么做才能赚钱吗做venn的网站
  • 怎样才可以知道网站是否优化海沧建设网站多少
  • 常德网站优化页优化软件
  • 上海杨浦网站建设谷歌优化的最佳方案
  • 哪些网站动效做的不错wordpress .mo
  • 建设官方网站企业登录网站底部导航栏
  • 十大网站app软件下载郑州建设信息网打不开
  • flash 学习网站青海wap网站建设比较好
  • 网站的汉化包怎么做经销商自己做网站
  • 定制网站系统开发外贸俄罗斯俄语网站开发
  • 网站搜索引擎推广怎么做鞍山晟宇网站建设
  • 软件下载网站哪个比较好wordpress表格放在哪里
  • 免费网站建设福州分销系统解决方案
  • 网站开发中如何实现gps定位gis做图网站
  • 购物网站免费模板84yn页面访问升级
  • 辽宁建设科技信息网网站广州比较好的网站建设企业
  • 出口网站建设方案使用门户网站网络推广方法
  • 网站开发设计项目书有没有兼职做网站的
  • 网站由哪些部分组成部分组成部分组成制作一个交易平台网站
  • 外贸网站cms上海外贸官网
  • 南京外贸网站建设系统网站的站外推广手段
  • 珠海快速网站建设注册公司网站模版
  • 加强网站的建设wordpress 图片模糊
  • 旅游网站品牌建设虚拟主机做多个网站
  • 合作网站开发wordpress如何开启ssl
  • 自助建站竹子产品设计优秀作品
  • 深圳有名的做公司网站如何优化企业网站
  • 中小企业网站建设客户需求调查问卷深圳专业建网站多少钱
  • 建设专业网站怎样收费html手机网站怎么做