Vue完整版与非完整版

140 阅读2分钟

如何安装vue

npm install -g @vue/cli
# 或
yarn global add @vue/cli
# 完成后检查版本
vue --version
# 创建一个名为hello-world的目录
vue create hello-world
#根据需要完成相应配置
# 进入目录
cd hello-world
# 开启webpack-dev-serve
yarn serve

完成版与非完整版的区别

  • vue.js 完整版

    • 开发使用(运行时版+编译器)(编译器:将模板字符串编译成为JS渲染函数的代码),体积大,不建议用,可以从HTML获得视图。
  • vue.runtime.js 非完整版

    • 发布使用 通过webpack内的vue-loader,来调用pomliler,把其转成h()函数,因此体积小,加载速度快

image.png

template 和 render 使用

//main.vue
<template>
  <div id="app">
    {{n}}
    <button @click="add">+1</button>
  </div>
</template>
// 非完整版使用webpack中的Vue Loader,
// 它允许你以一种名为单文件组件 (SFCs)的格式撰写 Vue 组件
import Demo from './main.vue'  
new Vue({
  render(h){
  h(Demo)}
})

使用 vue-loaderrender 函数可以使没有编译器的非完整版实现完整版的功能

vue-loader可以将模板中的 template,css,script 代码提取出来交给对应的loader处理

Vue实例

Vue实例就如同 jQuery 实例,封装了 DOM 的所有操作,封装了 data 的所有操作。

然后就可以操作 DOM 了,就像监听事件,改变 DOM,操作 data,对 data 进行增删改查。

Vue实例没有封装 ajax,需要使用 axios 的 ajax 功能。

单文件组件

在很多 Vue 项目中,我们使用 Vue.component 来定义全局组件,紧接着用 new Vue({ el: '#container '}) 在每个页面内指定一个容器元素。

这种方式在很多中小规模的项目中运作的很好,在这些项目里 JavaScript 只被用来加强特定的视图。但当在更复杂的项目中,或者你的前端完全由 JavaScript 驱动的时候,下面这些缺点将变得非常明显:

  • 全局定义 (Global definitions) 强制要求每个 component 中的命名不得重复

  • 字符串模板 (String templates) 缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 \

  • 不支持 CSS (No CSS support) 意味着当 HTMLJavaScript 组件化时,CSS 明显被遗漏

  • 没有构建步骤 (No build step) 限制只能使用 HTMLES5 JavaScript,而不能使用预处理器,如 Pug (formerly Jade)Babel

文件扩展名为 .vue 的 single-file components (单文件组件) 为以上所有问题提供了解决方法,并且还可以使用 webpack 或 Browserify 等构建工具。

<template>
	<p>{{n}} World!</p>
</template>
<script>
  module.exports= f
  data: function (){
     return {n:0}
  }
</script>
<style scoped>
  p{  
    font-size: 2em;
    text-align: center
  }
</style>

SEO不友好

因为页面内容为 js 生成,因此 curl 获取不到内容,因此需要设置 TITLE keyword description 属性,以便 curl 获取信息,进行搜索引擎优化。

<title>网站标题</title>
<meta name=”Keywords” Content=”关键词1,关键词2,关键词3,关键词4″>
<meta name=”Description” Content=”你网页的简述”>

如何用 CodeSandbox 写 Vue 代码

CodeSandbox 可以方便快速初始化,VueReactAngular 等项目

  1. 首先进入 CodeSandbox 官网,点击右上角 Create Sandbox

image.png

  1. 选择 Vue, 即可享受开始代码之旅!

  2. 选择 save

  3. 选择 File > Export to ZIP,即可导出代码到 zip 压缩文件