src目录结构

assets: 放置静态资源,包括公共的 css 文件、 js 文件、iconfont 字体文件、img 图片文件 以及其他资源类文件。之所以强调是公共的 css 文件,是因为要在组件的 css 标签里加入 ‘scoped‘ 标记,将其作用范围限制在此组件以及调用它的父级组件中,避免污染全局样式;
components: 放置通用模块组件。项目里总会有一些复用的组件,例如弹出框、发送手机验证码、图片上传等,将它们作为通用组件,避免重复工作;
http: 放置与后台 api 相关的文件。这里面有 axios 库的实例配置文件、使用配置的 axios 实例接入 api 获取数据的函数的集合的文件;
mixins: 放置混合选项的文件。具体来说,相当于是公用函数的集合,在组件中引用时,可以作用于组件而不必书写重复的方法;
pages: 放置主要页面的组件。例如登录页、用户信息页等。通常是这里的组件本身写入一些结构,再引入通用模块组件,形成完整的页面;
router: 放置路由设置文件,指定路由对应的组件;
store: 放置 vuex 需要的状态关联文件,设置公共的 state、mutations 等;
App.vue: 入口组件,pages 里的组件会被插入此组件中,此组件再插入 index.html 文件里,形成单页面应用;
main.js: 入口 js 文件,影响全局,作用是引入全局使用的库、公共的样式和方法、设置路由等。

一、main.js

####项目的入口文件

import Vue from 'vue'
//自动寻找名字为App的文件,如app.vue app.js...
import App from './App'
/* 引入router变量*/
import router from './router'

Vue.config.productionTip = false

new Vue({
/* 挂载在id=app的div元素上 */
  el: '#app',
 /* 使用router变量 router:router*/
  router,
/* es6写法,为App:App 键值一样可以省写为一个。名字为App的局部组件*/
  components: { App },
  /* 将App局部组件显示在页面上*/
  template: '<App/>'
})

二、app.vue

####文件以vue后缀结尾,为单文件组件,其中为vue组件

<template>
 /* 模板标签*/
  <div id="app">
    <img src="./assets/logo.png">
    /* 显示的是当前路由地址对应的内容 即router目录下index.js引用的HelloWorld组件的内容*/ 
    <router-view/>
  </div>
</template>

<script>
 /* 组件的逻辑*/
export default {
  name: 'App'
}
</script>

<style>
 /* 组件的css样式*/
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

三、路由

####路由就是根据网址的不同,返回不同的内容给用户
如:url为 http://localhost:8080/#/list 返回列表页面
####router目录下index.js

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      /* 当访问根目录时,展示HelloWorld组件*/
      name: 'HelloWorld',
      component: HelloWorld
    }
  ]
})
Logo

前往低代码交流专区

更多推荐