Vue的两个版本

286 阅读3分钟

vue版本
2013年,0.6版、0.7版
2014年,0.8~0.11版
2015年,1.0版
2016年,2.0版 就已经不是单纯的mvvm框架了
2019年,2.6版
2020年,3.0版

项目搭建

Vue cli 创建项目

CLI ( @vue/cli ) 是一个全局安装的npm 包,提供了终端里的 vue 命令。 它可以通过 vue create 快速创建一个新项目的脚手架,或者直接通过 vue serve 构建新想法的原型。 你也可以通过 vue ui 通过一套图形化界面管理你的所有项目。
安装@vue/cli
命令:yarn global add @vue/cli (yarn global add @vue/cli@4可指定版本)
创建一个项目 命令:vue create 路径
第一组选项(Babel、CSS、Linter、Unit )
第二组选项(dart-sass)
第三组(Lint and fix on commit 取消掉其它选项)
jest
n

运行提示的两句代码
start . 打开当前目录
将创建项目拖进vscode
开启yarn serve 如果看见下面的图片说明我们的项目创建成功

成功图片

codesandbox.io创建项目

codesandbox.io
create sanbox 创建沙盒
exprot zip 导出文件
Browser 选项会提供一个链接预览

vue 的两个版本

完整版vue

可以通过CDN引入/NPM安装
webpack引入
也可以通过import引用vue.js或者vue.min.js

https://cdn.bootcss.com/vue/2.6.10/vue.min.js

https://cdn.bootcss.com/vue/2.6.10/vue.js

可以从HTML直接得到视图
所以可以直接将替换内容写在HTML或者template选项中

直接将html内容替换

<div id="app">{{n}}</div>
new Vue({
  el:'#app',
  data:{
    n:0
  }
})

直接将template内容替换

new Vue({
  el:'#app',
  template:`
  <div>{{msg}}</div>`,
  data:{
    n:0,
    msg:'我爱你'
  }
})

完整版拥有conpoler(编译器)可以将html字符串含有占位符或者条件循环的语句变成真实的DOM节点
由于编译器比较复杂,复杂就代表会占用一定的代码体积,所以完整版会比非完整版的体积大30%.

非完整版

vue.runtime.min.js

非完整版的意义在于它更加独立
功能弱,但是可以通过vue-loader编译
非完整版不能从html获得视图,所以需要将替换内容传入render函数中

new Vue({
    el:'#app',
    render(h){
        return h('div',[this.n,h('button',{on:{click:this.add}}'+1')])
    },
    data:{
        n:0
    },
    add(){
        this.n += 1
    }
})

简单的理解template和render的关系:

template标签用于包裹住需要插入的内容,有固定的格式和语法.
而render方法会传入一个h方法,而h方法可以接收参数进行一个回调将数据渲染进页面。
具体如下:

render

vue单文件组件

(引入vue.runtime.js)

<template>
    <div>
        {{n}}
        <button @click="add">+1</button>
    </div>
</template>

<script>
export default {
    data(){
        return {n:0}
    },
    methods:{
        add(){
            this.n + 1
        }
    }
}
</script>

<style scoped>
.red{
    color:red;
}
</style>

单组件文件可以导出传递给render函数中作者写好的函数方法进行回调。详情请看上面template和render的图解

两个版本的对比图

完整版本有complier(编译器)所以功能全,体积大,用户体验会差点,非完整版本没有compiler功能差些,但是体积小,用户体验好些,通过webpack设置加载器vue-loader帮助我们解决功能不全的问题。

版本对比