Vue初体验

215 阅读2分钟

完整版与非完整版区别

  • 完整版vue.js:同时包含编译器和运行时的版本,视图写在HTML里或者写在template选项
  • 非完整版vue.runtime.js:只包含运行时的版本,视图写在render函数里用h来创建标签
  • 编译器:用来将模板字符串编译成为 JavaScript 渲染函数的代码。约占百分之四十代码体积
  • 运行时:用来创建 Vue 实例、渲染并处理虚拟 DOM 等的代码。基本上就是除去编译器的其它一切

使用@vue/cli 创建Vue项目

  1. 进入官网Vue CLI
  2. 全局安装
yarn global add @vue/cli
vue --version // 查看版本
  1. 创建一个新项目
vue create 路径
  1. 选择使用配置 // 根据实际开发需要选择

  2. 进入目录, 运行yarn serve开启webpack-dev-server

  3. 用WebStorm或者VSCode打开项目

  4. bootcdn提供的链接在index.html引入vue(完整版或非完整版)

<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>

使用codesandbox.io 创建Vue项目

  1. 进入 codesandbox.io
  2. 不要登陆,免费创建一个沙盒(登陆后将限制创建次数)
  3. 选择vue模板
  4. 开始写代码

两种版本使用方法

  1. 直接下载并用 标签引入,Vue 会被注册为一个全局变量
  2. CDN引入
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
  1. @vue/cli引入默认使用非完整版,使用完整版需要另外配置
  • vue.js错用成vue.runtime.js,无法将HTML编译成视图
  • vue.runtime.js错用成vue.js,代码体积会变大,因为多了编译器

template 和 render 怎么用

  • 在Vue文件中以template标签创建HTML // 完整版vue.js
new Vue({
  el: '#app',
  template: '<div>{{ hi }}</div>', 
  data: {
    hi: "你好"
  }
})
  • 在js中以render函数渲染元素 // 非完整版vue.runtime.js
import Vue from 'vue'
new Vue({
  el: '#app',
  render(h) {
    return h('div', this.hi)
  },
  data: {
    hi: "你好"
  }
})
  • 使用vue-loader

可以把.vue文件翻译成h构建方法,但这样做HTML就只有一个div#app,SEO不友好

import Demo from "./Demo.vue"
new Vue({
  el: '#app',
  render(h) {
    return h(Demo)
  },
})
<template>
  <div class="red">
    {{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>