vue-cli

要安装cli首先你要有npm,npm下载地址:http://nodejs.cn/download/

全局安装cli

npm install vue-cli -g

之后打 vue -V 命令,如果管用就证明安装成功了

初始化项目

vue init <template-name> <project-name>

<template-name>:表示模板名称,vue-cli官方为我们提供了5种模板,

  webpack-一个全面的webpack+vue-loader的模板,功能包括热加载,linting,检测和CSS扩展。

  webpack-simple-一个简单webpack+vue-loader的模板,不包含其他功能,让你快速的搭建vue的开发环境。

  browserify-一个全面的Browserify+vueify 的模板,功能包括热加载,linting,单元检测。

  browserify-simple-一个简单Browserify+vueify的模板,不包含其他功能,让你快速的搭建vue的开发环境。

  simple-一个最简单的单页应用模板。

<project-name>:标识项目名称,这个你可以根据自己的项目来起名字。

在实际开发中,一般我们都会使用webpack这个模板,那我们这里也安装这个模板,在命令行输入以下命令:

vue init webpack vuecliTest

后面的项目名称是可以省略的,省略后默认当前文件夹

vue init webpack

输入命令后,会询问我们几个简单的选项,我们根据自己的需要进行填写就可以了。

  • Project name :项目名称 ,如果不需要更改直接回车就可以了。注意:这里不能使用大写,所以我把名称改成了vueclitest
  • Project description:项目描述,默认为A Vue.js project,直接回车,不用编写。
  • Author:作者,如果你有配置git的作者,他会读取。
  • Install  vue-router? 是否安装vue的路由插件,我们这里需要安装,所以选择Y
  • Use ESLint to lint your code? 是否用ESLint来限制你的代码错误和风格。我们这里不需要输入n,如果你是大型团队开发,最好是进行配置。
  • setup unit tests with  Karma + Mocha? 是否需要安装单元测试工具Karma+Mocha,我们这里不需要,所以输入n。
  • Setup e2e tests with Nightwatch?是否安装e2e来进行用户行为模拟测试,我们这里不需要,所以输入n。

 填完这些选项就初始化完成了

之后我们要安装项目的依赖包

输入以下命令

npm install

等待安装结束,然后就可以运行了

npm run dev

页面打开后,如果有个vue的初始页面,就证明成功了

接下来讲解项目里的结构

首先页面的本体是index.html,在别的地方打的代码最终会编译到这个里面

index.html当中有一个id为app的div,这个div被替换为了模板,关于替换模板的设置在src下的main.js中

el 要替换的标签 template 替换的模板 components 模板实际的对象

那么替换掉这个div的模板放在哪里呢,同样在src下面

所有.vue后缀的就是模板

我们接下来看一下模板的内部

由三部分构成 template script style

tempate是模板,也就是替换后实际显示的效果

style是css样式,没什么好说的,但是有一个属性 scoped 这是代表这些样式只在本模板中起效果 (避免了不同模板文件中样式重名问题)

Script基本等于我们原本在vue的用法时创建的vue对象当中

原本对象中的属性,在Script中也可以写

原本的写法 :

 var app = new Vue({
            el:"#vue",
            data:{
                
            },
            methods:{
                
            }
        })

现在的写法 :

export default {
  data () {
    return {
      
    }
  },methods:{
    show:function(){
      
    }
  }
}

Vue的生命周期与钩子函数

 如上图,vue的生命周期一共有10个

    export default {
           data () {
                return {
         
                }
            }, 
            beforeCreate:function(){
                console.log('1-beforeCreate 初始化之后');
            },
            created:function(){
                console.log('2-created 创建完成');
            },
            beforeMount:function(){
                console.log('3-beforeMount 挂载之前');
            },
            mounted:function(){
                console.log('4-mounted 被创建');
            },
            beforeUpdate:function(){
                console.log('5-beforeUpdate 数据更新前');
            },
            updated:function(){
                console.log('6-updated 被更新后');
            },
            activated:function(){
                console.log('7-activated');
            },
            deactivated:function(){
                console.log('8-deactivated');
            },
            beforeDestroy:function(){
                console.log('9-beforeDestroy 销毁之前');
            },
            destroyed:function(){
                console.log('10-destroyed 销毁之后')
            }
    }
                                       

接下来我们看一下vue的路由

路由在src → router → index.js

import Vue from 'vue'   //引入Vue
import Router from 'vue-router'  //引入vue-router
import Hello from '@/components/Hello'  //引入根目录下的Hello.vue组件
 
Vue.use(Router)  //Vue全局使用Router
 
export default new Router({
  routes: [              //配置路由,这里是个数组
    {                    //每一个链接都是一个对象
      path: '/',         //链接路径
      name: 'Hello',     //路由名称,
      component: Hello   //对应的组件模板
    }
  ]
})

路由的基本配置方式为

在最上面import你要配置的页面,把它变成一个对象

然后在routes数组中给它设置路径(path)和路由名称(name),再把刚刚import的对象放在component中就完成了

之后只要访问你设置的路径就可以了

我们可以注意到vue的路径跟mvc的不太一样(其实就是多了个#),这样做很多事情时会很麻烦

我们可以在路由加上 mode:"history" ,这样就会变成常见的路径格式

而且这个模式支持浏览器的后退前进

注 因为vue一直是同一个页面中不断变内容(局部刷新),所以页面不会刷新也不会跳转,因此浏览器的后退,前进,历史记录都不能用(这也是ajax的一个最大的缺点)

export default new Router({
  mode:"history",
  routes: [
    {
      path: '/',
      name: 'Hello',
      component: Hello
    }
})
原文地址:https://www.cnblogs.com/nicopoiduang/p/8025758.html