使用vue-cli脚手架初始化Vue项目下的项目结构

综合技术 2018-03-07

vue-cli是Vue 提供的一个官方命令行工具,可用于快速搭建大型单页应用。该工具提供开箱即用的构建工具配置,带来现代化的前端开发流程。只需几分钟即可创建并启动一个带热重载、保存时静态检查以及可用于生产环境的构建配置的项目。

使用vue-cli有以下几大优势:

  1. vue-cli是一套成熟的Vue项目架构设计,会跟着Vue版本的更迭而更新
  2. vue-cli提供了一套本地的热加载的测试服务器
  3. vue-cli集成了一套打包上线的方案,可使用webpack或Browserify等构建工具

安装

下面来安装vue-cli

# 必须全局安装vue-cli,否则无法使用vue命令
# 安装完成之后使用vue -V检查vue-cli是否安装成功及版本信息

$ npm install -g vue-cli
$ vue -V

创建项目

接下来使用vue-cli创建一个新的Vue项目

# 项目创建完之后需要执行npm install安装依赖

$ vue init webpack vuedemo
$ npm install

创建的vuedemo文件夹所包含的文件如下:

[index.html]

index.html和其他html文件一样,但一般只定义一个空的根节点,在main.js里面定义的实例将挂载在根节点下,内容都通过vue组件来填充,由于所有的挂载元素会被Vue生成的DOM替换,因此不推荐直接挂载实例到 或者 上。

[main.js]

是Vue应用的入口文件,用来创建一个新的Vue实例,并将这个实例挂载在根节点下,同时也可以用来引入Vue插件

‘el’选项:提供一个在页面上已存在的DOM元素作为Vue实例的挂载目标,这里就是index.html中id为‘app’的节点

‘router’选项:将router实例注入到Vue根实例中,使它的每个子组件都可以访问$router (router实例)和$route (当前激活的路由信息对象)

‘template’选项:以一个字符串模板作为 Vue 实例的标识使用

‘components’:根组件

[App.vue]

项目的根组件,可以包含其他的子组件,从而组成组件树

只能包含一个子节点,也就是说顶层的div只能有一个(如图,id为‘app’的div元素没有兄弟节点)

通常用es6来写,用export default导出

中的样式默认是影响全局的,如需定义作用域只在该组件下起作用,需在标签上加scoped,

[router/index.js]

路由配置文件,作用是将组件映射到路由,方便知道在哪里渲染它们

您可能感兴趣的

说说vue项目中自动添加前缀的那些事 目前,vue-cli初始化的项目中已经自动帮我们配置好postcss了,而其中我们非常常用的一个插件就是autoprefixer,浏览器属性前缀自动补全: 例如我写一个需要兼容属性: .head { display: flex; } 编译后的自动帮我们补全了 displa...
Using Vue as an Angular alternative for Ionic: The... We keep going on with the Ionic Vue fever! This time we will see how we can we use Directives in an Ionic Vue application. You will nee...
How I wrote a book; the writing process from one o... Over the second half of 2017, I spent my spare time writing a book on Vue.js and its official plugins; Vue.js 2.x by Example . The book was then p...
How the new Vue CLI simplifies development Developers transitioning from React to Vue don’t have the best experience with tooling or are rather overwhelmed by the scaffold process. React ha...
What does the ‘h’ stand for in Vue’s render method... If you’ve been working with Vue for a while, you may have come across this way of rendering your app — this is the default in the latest version o...