iView基础学习(1)-Vue-Cli3.0创建项目

梦里梦外; 2021-09-16 23:50 477阅读 0赞

Vue-Cli3.0创建项目

一、基础知识

(1)使用Vue UI创建、管理项目

(2)项目结构目录整理

(3)初始文件添加

(4)基本配置讲解

(5)跨域配置


二、使用Vue UI创建、管理项目

1、首先安装vue-cli3.0

2、终端运行vue ui

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70

Vue UI界面介绍

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 1

Projects:表示vue项目

Create:表示创建vue项目

Import:表示导入vue项目

3、创建项目

详情

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 2

预设

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 3

功能

通常,我们一般选择一下功能:Babel,Router,Vuex,CSS Pre-processors,Linter/Formatter,使用配置文件等等

配置

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 4

是否保存预设

保存之后,可以用于下次创建项目 。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 5

创建完成后,我们可以查看项目中的插件、依赖、配置、任务等。

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 6


三、项目结构目录整理

项目目录如下图:

20181113071930911.png

解释:

vue.config.js:配置文件。

package.js:定义项目的描述,项目版本、名称、运行的脚本、依赖等等。

babelconfig.js:babel的配置文件。

.gitignore:Git提交时的忽略文件。

.eslintrc.js:配置eslint规则的文件。

public:公共文件。public/index.html:模板文件。public/favicon:图标文件。

src:开发文件。src/assets:静态文件、src/components:抽离的组件、src/iview:视图文件(页面)。

app.vue:基础组件。

main.js:入口文件。

router.js:路由文件。

store.js:vuex状态管理文件。


四、初始文件添加

对于使用vscode的开发者,可以添加编辑器配置文件(.editorconfig),并进行基本配置。

  1. root = true
  2. [*]
  3. charset = utf-8
  4. indent_style = tabs
  5. indent_size = 2

注意:配置完成之后,需要安装EditorConfig for VS Code。


五、新增文件夹/文件

api:该文件夹用于存放api接口请求。

assets/img、assets/font:分别对应放置图片、图标字体。

config:项目的配置文件夹。

config/index.js:对项目的一些配置。介绍:使用eslint语法,使用 export default { } 导出配置对象,在使用的时候直接引入即可。举例:config/index.js store.js 文件中使用,代码如下:

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import config from './config/index'
  4. Vue.use(Vuex)
  5. export default new Vuex.Store({
  6. state: {
  7. },
  8. mutations: {
  9. },
  10. actions: {
  11. }
  12. })

directive/index.js:存储 自定义指令 的文件。

lib/util.js与业务有关系 的方法。

lib/tools.js:与 业务没有直接关系 的方法,即 纯粹的方法


router/router.js:原有的router.js移入router文件夹,以后放置 路由列表

router/index.js:将原有的router.js文件中的除路由列表以外的部分。

iView中router文件夹下有index.js和router.js两个文件。其中,index.js文件用于创建路由实例。router.js文件用于配置路由。

index.js文件

  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. // 引入router.js文件
  4. import routes from './router'
  5. Vue.use(Router);
  6. export default new Router({
  7. routes
  8. })

router.js文件

  1. import Home from '@/views/Home.vue'
  2. export default [{
  3. path: '/',
  4. name: 'home',
  5. component: Home
  6. }, {
  7. path: '/about',
  8. // route level code-splitting
  9. // this generates a separate chunk (about.[hash].js) for this route
  10. // which is lazy-loaded when the route is visited.
  11. component: () =>
  12. import ( /* webpackChunkName: "about" */ '@/views/About.vue')
  13. }, {
  14. path: '/argu:name',
  15. component: () =>
  16. import ('@/views/argu.vue')
  17. }
  18. ]

store/index.js:将原有的store.js文件移入store文件夹中,并重命名为index.js。注意:需要将拆分后的 state.jsmutations.jsactions.js 文件引入,并注册。如下:

store/state.js:vuex中的 state 。

store/mutations.js:vuex中的 mutations 。

store/actions.js:vuex中的 actions 。

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import state from './state'
  4. import mutations from './mutations'
  5. import actions from './actions'
  6. Vue.use(Vuex)
  7. export default new Vuex.Store({
  8. state,
  9. mutations,
  10. actions
  11. })

新增模块的使用方法:

store/module/user.js:存储用户信息的模块(以user.js为例)

  1. const state = {
  2. }
  3. const mutations = {
  4. }
  5. const actions = {
  6. }
  7. export default {
  8. state,
  9. mutations,
  10. actions
  11. }

使用很简单,只需要在store/index.js中引入即可。如下:

  1. import Vue from 'vue'
  2. import Vuex from 'vuex'
  3. import state from './state'
  4. import mutations from './mutations'
  5. import actions from './actions'
  6. // 引入module模板(user为例)
  7. import user from './module/user'
  8. Vue.use(Vuex)
  9. export default new Vuex.Store({
  10. state,
  11. mutations,
  12. actions,
  13. modules: {
  14. user
  15. }
  16. })

mock/index.js:用于数据模拟。在后端接口为提供之前,前端开发者,可以用该文件(终端:npm instal mockjs -D 安装)进行数据模拟。

  1. import Mock from 'mockjs';
  2. // 在这里封装接口请求......
  3. export default Mock

此时,我们新增的文件已经完成了。


六、基础文件 vue.config.js 配置

具体的名词解释,请留意代码注释。代码如下:

  1. const path = require('path');
  2. const resolve = dir => path.join(__dirname, dir);
  3. // 定义基础路径
  4. const BASE_URL = process.env.NODE_ENV === 'production' ? '/iview-admin' : '/';
  5. module.exports = {
  6. // 不保存为eslintt规范的代码
  7. lintOnSave: false,
  8. baseUrl: BASE_URL,
  9. // 以下链式结构作用:指定文件路径的简化缩写。
  10. chainWebpack: config => {
  11. config.resolve.alias
  12. .set('@', resolve('src'))
  13. .set('_c', resolve('src/components'))
  14. },
  15. // 打包时不生成map文件,加快打包速度,减少体积。
  16. productionSourceMap: false,
  17. // 设置跨域转发:将任务未请求到静态文件的请求均代理到http://localhost:4000
  18. devServer: {
  19. proxy: 'http://localhost:4000'
  20. }
  21. }

六、温馨提示

更多博文,请关注公众号:**xssy5431 小拾岁月**

扫码:

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMTE1OTY1_size_16_color_FFFFFF_t_70 7

发表评论

表情:
评论列表 (有 0 条评论,477人围观)

还没有评论,来说两句吧...

相关阅读