vue.js

Vue-cli 模板解读

2019-06-03  本文已影响6人  Rising_life

npm run build 命令

在命令行中输入npm run build命令后,vue-cli会自动进行项目发布打包。

在package.json文件的scripts字段中可以看出,执行的npm run build命令就相对执行的 node build/build.js 。

package.json的scripts 字段:

执行完npm run build命令后,在项目根目录生成了dist文件夹,这个文件夹里边就是我们要传到服务器上的文件。

dist文件夹下目录包括:

index.html主页文件:因为我们开发的是单页web应用,所以说一般只有一个html文件。

static 静态资源文件夹:里边js、CSS和一些图片。

main.js文件解读

main.js是整个项目的入口文件,在src文件夹下:

通过代码可以看出这里引进了App的组件和的模板,它是通过 import App from ‘./App’这句代码引入的

App.vue文件:

app.vue文件我们可以分成三部分解读:

<template></template>标签包裹的内容:这是模板的HTMLDom结构,里边引入了一张图片和<router-view></router-view>标签,<router-view>标签说明使用了路由机制。我们会在以后专门拿出一篇文章讲Vue-router。

<script></script>标签包括的js内容:你可以在这里些一些页面的动态效果和Vue的逻辑代码。

<style></style>标签包裹的css内容:这里就是你平时写的CSS样式,对页面样子进行装饰用的,需要特别说明的是你可以用<style scoped></style>来声明这些css样式只在本模板中起作用

router/index.js 路由文件

在app.vue中我们看到了路由文件

可以看到 import Hello from ‘@/components/Hello’这里引入了/components/Hello.vue文件。

这个文件里就配置了一个路由,就是当我们访问网站时给我们显示Hello.vue的内容。

Hello.vue文件解读:

Hello.vue文件分为<template><script><style>三个部分,大部分的工作都是写在这些.vue结尾的文件。

可以试着改一些内容,然后预览一下。浏览器会进行热更新

<template>

  <div class="hello">

    <h1>{{ msg }}</h1>

    <h2>Essential Links</h2>

    <ul>

      <li><a href="https://vuejs.org" target="_blank">Core Docs</a></li>

      <li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li>

      <li><a href="https://gitter.im/vuejs/vue" target="_blank">Gitter Chat</a></li>

      <li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li>

      <br>

      <li><a href="http://vuejs-templates.github.io/webpack/" target="_blank">Docs for This Template</a></li>

    </ul>

    <h2>Ecosystem</h2>

    <ul>

      <li><a href="http://router.vuejs.org/" target="_blank">vue-router</a></li>

      <li><a href="http://vuex.vuejs.org/" target="_blank">vuex</a></li>

      <li><a href="http://vue-loader.vuejs.org/" target="_blank">vue-loader</a></li>

      <li><a href="https://github.com/vuejs/awesome-vue" target="_blank">awesome-vue</a></li>

    </ul>

  </div>

</template>

<script>

export default {

  name: 'hello',

  data () {

    return {

      msg: 'Welcome to Your Vue.js App'

    }

  }

}

</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->

<style scoped>

h1, h2 {

  font-weight: normal;

}

ul {

  list-style-type: none;

  padding: 0;

}

li {

  display: inline-block;

  margin: 0 10px;

}

a {

  color: #42b983;

}

</style>

上一篇下一篇

猜你喜欢

热点阅读