Vue-cli 学习

Vue-cli是vue官方出品的快速构建单页应用的脚手架
css

使用npm来安装vue-cli,命令以下:html

npm install vue-cli -g

-g:表示全局安装。(npm是随node.js安装包一块儿安装的,关于这一部份内容能够到:http://www.cnblogs.com/momei/p/7194089.html  进行了解)vue

安装完成后,可使用  vue -V 来查看 vue-cli 版本,版本正确显示,则证实 vue-cli 已安装成功,能够开始接下来的学习了。node

初始化项目webpack

vue init命令初始化项目:git

vue init template-name project-name

template-name:表示模板名称,vue-cil 官方提供了5种模板。github

  • webpack:一个全面的 webpack + vue - loader 的模板,功能包括热加载,linting,检测和css扩展。
  • webpack-simple:一个简单的 webpack + vue - loader 模板,不包含其余功能,让你快速的搭建vue的开发环境。
  • browserify:一个全面的Browserify + vueify 的模板,功能包括热加载,linting,单元检测。
  • browserify-simple:一个简单的Browerify+vueify的模板,不包括其余功能,让你快速的搭建vue的开发环境。
  • simple:一个最简单的单页应用模板。

project-name:表示项目名称,根据本身的项目名称来填写。web

在实际开发中,通常使用webpack模板,安装命令以下:vue-router

vue init webpack vueObject

回车后,会询问几个选项,根据本身的须要进行填写。vuex

Project name:项目名称,若是不须要更改直接回车。这里填写的项目名称一概使用小写。

Project description:项目描述,默认为A Vue.js project直接回车。

Author:做者,若是有配置git做者,它会自动读取。

Install vue-router:是否安装vue的路由插件,通常都须要安装,选择Y。

Use ESLint to lint your code:是否有ESLint来限制你的代码错误和风格。通常在大型团队须要。

steup unit tests with Karnma + Mocha:是否须要安装单元测试工具 karma + Mocha。通常在大型团队须要。

Setup e2e test with Nightwatch:是否安装e2e来进行用户行为模拟测试。通常在大型团队须要。

以上信息完成后,vue-cil 出现命令提示:

  1. cd vueobject :进入vue项目。
  2. npm install:安装项目依赖包package.js。
  3. npm run dev 运行程序。

完成以上操做,会打开一个网页显示vue的图标及其文字信息。

vue-cli 项目结构

package.json:项目根目录下的文件,定义项目开发所须要的模块以及一些配置信息。

packsge.json里的script字段:定义了能够用npm运行的命令

"scripts": {
   "dev": "node build/dev-server.js",
   "build": "node build/build.js"
},

dependencies 字段和 devDependencied 字段:

  • depandencies 字段指项目运行时因此来的模块;
  • devDependencies 字段指定了项目开发所依赖的模块

在命令行中运行npm install命令,会自动安装dependencies和devDempendencies字段中的模块。

webpack配置相关内容:

运行npm run dev 就至关于执行了node build/dev-server.js。重点阅读此文件夹。

.babelrc :存放在根目录下,babelrc是一个转码器,将ES6代码转化为ES5。

{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transform-runtime"],
  "env": {
    "test": {
      "presets": ["env", "stage-2"],
      "plugins": ["istanbul"]
    }
  }
}

.editorconfig:定义项目的规范编码。

root = true
 
[*]    // 对全部文件应用下面的规则
charset = utf-8                    // 编码规则用utf-8
indent_style = space               // 缩进用空格
indent_size = 2                    // 缩进数量为2个空格
end_of_line = lf                   // 换行符格式
insert_final_newline = true        // 是否在文件的最后插入一个空行
trim_trailing_whitespace = true    // 是否删除行尾的空格

vue-cil 模板

家下来了解vue-cli的模板操做,包括增长模板和修改模板。

npm run build 命令:执行该命令vue-cli会自动进行项目打包,打包完成后在项目的根目录下生成dist文件。

dist  文件包含:

  • index.html  主页文件,由于开发是单页web应用,因此通常只有一个html文件。
  • static  静态资源文件:css、图片、js。

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

import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  template: '<App/>',
  components: { App }
})

这里引入了App组件和</App>模板,是经过import App from './App' 代码引入

App.vue:

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <router-view></router-view>
  </div>
</template>
 
<script>
export default {
  name: 'app'
}
</script>
 
<style>
#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>

router/index.js 路由文件:

import Vue from 'vue'
import Router from 'vue-router'
import Hello from '@/components/Hello'
 
Vue.use(Router)
 
export default new Router({
  routes: [
    {
      path: '/',
      name: 'Hello',
      component: Hello
    }
  ]
})

咱们能够看到 import Hello from ‘@/components/Hello’这句话, 文件引入了/components/Hello.vue文件。这个文件里就配置了一个路由,就是当咱们访问网站时给咱们显示Hello.vue的内容。

Hello.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>

 

以上即是 vur-cli的一些基本知识,更深刻的了解须要项目的磨练,愿每一个实践者都有所得,也有更多的机会去运用。

相关文章
相关标签/搜索