我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue完整版和runtime版的区别详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue完整版和runtime版的区别详解

创建Vue实例的三种方式

从HTML得到视图

前提:使用完整版,CDN引入或者修改配置

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
	// ...
  configureWebpack: {
    resolve: {
      alias: {
        vue$: 'vue/dist/vue.esm.js', // 用 webpack 1 时需用 'vue/dist/vue.common.js'
      },
    },
  },
})

index.html

<div id="app">
  {{n}} 
</div>

main.js

import Vue from 'vue' // 或者在index.html使用CDN引入
new Vue({
  // 挂载到app元素并以其DOM内部的HTML作为模板
  el: '#app',
  data: {
    n: 1,
  },
})
// 或者传一个字符串给template
new Vue({
  template: '<div>{{ n }}</div>'
})

用JS构建视图

需要用到render函数,参数是Vue提供的h函数,也即createElement

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

使用vue-loader

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

新建一个单文件组件 Demo.vue

<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>
  .red {
    color: red;
  }
</style>
import Vue from 'vue'
import Demo from './Demo.vue'
console.log(Demo.render.toString())
new Vue({
  el: '#app',
  render(h) {
    return h(Demo)
  },
})

将render()函数打印出来,可以看到该函数将<template>内部代码翻译成h构建方法

完整版和运行时版的区别

完整版:运行时+编译器(compiler将模板字符串编译成JavaScript渲染函数的代码)

运行时版:没有编译器,体积小

如果把视图写在HTML或template选项会报错

两者对比

特点视图CDN引入webpack或@vue/cli引入
Vue完整版有编译器,体积大写在HTML或template选项里vue.js需额外配置
Vue运行时版无编译器写在render函数里,用参数h创建标签vue.runtime.js默认使用

最佳实践

使用非完整版,配合 vue-loader 和 vue 文件

思路

  • 保证用户体验,用户下载的JS文件体积更小,但只支持h函数
  • 保证开发体验,开发者可以直接在vue文件里写HTML标签,不写h函数
  • 脏活让loader做,vue-loader把vue文件里的HTML转为h函数

SEO友好

搜索引擎优化

搜索引擎就是不停地curl,搜索引擎根据curl结果猜测页面内容

p.s. 用户访问网站看到的界面是JS渲染之后的,右键查看源代码才是curl返回的结果

如果页面都是JS创建div,curl无法获取有效信息,因此最好在title, description, keyword, h1, a写入内容(前面三个是meta标签)

总结一条原则:让curl能得到页面的主要内容和相关内容,SEO就能正常的工作

怎么提升SEO排名呢,访问量or氪金

以上就是Vue完整版和runtime版的区别详解的详细内容,更多关于Vue完整版runtime版区别的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue完整版和runtime版的区别详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Vue完整版和runtime版的区别详解

这篇文章主要为大家介绍了Vue完整版和runtime版的区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-21

thinkphp完整版和核心版有哪些区别

这篇文章将为大家详细讲解有关thinkphp完整版和核心版有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。thinkphp完整版和核心版的区别:1、核心版本去除了第三方扩展和驱动,仅保留了核心类库
2023-06-29

详解win10预览版和正式版有什么区别

win10系统是目前主流的操作系统,很多人都想要下载安装win10系统体验,不过却不知道该选win10预览版还是win10正式版系统,不知道win10预览版和正式版有什么区别。下面小编就给大家分析下win10预览版和正式版的区别。Win10
2023-07-13

win7旗舰版和专业版的区别的详细介绍

win7旗舰版和专业版的区别是什么呢?很多人不知道win7旗舰版是什么意思,和专业版有什么不同,在安装win7时也不知道应该选择哪个系统。快来了解一下win7旗舰版和专业版之间的区别,小编为大家进行科普!1、首先我们看一下win7专业版的特
2023-07-19

win7专业版和旗舰版有什么区别的详细介绍

Windows 7是微软发布的一款操作系统,分为多个版本,其中包括Windows 7专业版和旗舰版。下面是它们之间的详细区别介绍:1. 功能方面:- Windows 7专业版:专业版是面向中小型企业和专业用户的版本,提供了更多的高级功能,如
2023-08-31

Vue3中Vite和Vue-cli的特点与区别详解

vue-cli是Vue早期推出的一款脚手架,使用webpack创建Vue项目,可以选择安装需要的各种插件,比如Vuex、VueRouter,下面这篇文章主要给大家介绍了关于Vue3中Vite和Vue-cli的特点与区别的相关资料,需要的朋友可以参考下
2022-12-28

编程热搜

目录