基于Vue2的独立构建与运行时构建的差别(详解)

基于Vue2的独立构建与运行时构建的差别

独立构建和运行时构建的差别

Vue.js 2.0 提供了两种构建版本:完整版和运行时版本。独立构建包含 Vue 的完整版,包括编译器和反应器,可以自行编译模板并在运行时编译。而运行时构建则仅包含运行时版本,不包含编译器。使用运行时版本需要提前将为模板编译好的渲染函数传递给 Vue 实例。

运行时构建的优势在于它体积更小,同时在构建时会更快。但是,如果使用独立构建版本的 Vue,则可以在模板中使用可选的模板语法,如表达式等。

使用独立构建

要使用独立构建版本的 Vue,需要引入完整版的 build:

<script src="https://cdn.jsdelivr.net/npm/vue"></script>

接下来,可以直接在 HTML 中创建 Vue 实例:

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

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Hello, Vue!'
  }
})
</script>

其中,data 选项是必须的,用于声明组件的数据。

使用运行时构建

要使用运行时构建版本的 Vue,需要引入运行时版本的 build:

<!-- 引入 runtime 版本的 Vue -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.runtime.min.js"></script>

由于运行时版本的 build 不包括编译器,因此需要在构建时预编译模板。例如:

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

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.runtime.min.js"></script>
<script>
// 在构建时预编译模板
const app = new Vue({
  el: '#app',
  data: {
    message: 'Hello, Vue!'
  },
  // 提供为模板编译好的渲染函数
  render: function (h) { return h(App) }
})
</script>

在这个例子中,由于使用了运行时版本的 build,需要提供为模板编译好的渲染函数 render,render 接受 createElement 方法作为参数,返回一个 VNode 对象,用于渲染组件。

实战

使用独立构建

<div id="app">
  <h1>{{ title }}</h1>
  <p>{{ message }}</p>
  <button v-on:click="changeTitle">Change title</button>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
new Vue({
  el: '#app',
  data: {
    title: 'Welcome to My App',
    message: 'Hello, Vue!'
  },
  methods: {
    changeTitle: function () {
      this.title = 'My App'
    }
  }
})
</script>

这段代码中,我们使用独立构建的 Vue,并且在模板中使用了表达式 {{ title }} 和指令 v-on:click

使用运行时构建

<div id="app"></div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.runtime.min.js"></script>
<script>
// 组件定义
const MyComponent = {
  data: function () {
    return {
      title: 'Welcome to My App',
      message: 'Hello, Vue!'
    }
  },
  methods: {
    changeTitle: function () {
      this.title = 'My App'
    }
  },
  // 使用 h 函数渲染组件
  render: function (h) {
    return h('div', [
      h('h1', this.title),
      h('p', this.message),
      h('button', {
        on: {
          click: this.changeTitle
        }
      }, 'Change title')
    ])
  }
}

const app = new Vue({
  el: '#app',
  // 提供为组件编译好的渲染函数
  render: function (h) {
    return h(MyComponent)
  }
})
</script>

这段代码中,我们使用运行时构建的 Vue,并且预编译了组件的模板,提供了为组件预编译好的渲染函数 render。在组件中,我们使用了 createElement 方法 h 来创建子节点。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:基于Vue2的独立构建与运行时构建的差别(详解) - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue3 组件与API直接使用的方法详解(无需import)

    vue3 组件与API直接使用的方法详解(无需import) 概述 在Vue 3中,通过创建应用程序实例或者通过使用 defineComponent 函数可以定义组件。组件可以直接使用Vue 3的全局API和Composition API上下文。 直接使用Vue 3的全局API Vue 3通过app.config.globalProperties属性,允许我…

    Vue 2023年5月27日
    00
  • Vue不能观察到数组length的变化

    问题分析: Vue.js作为一款流行的前端框架,在日常使用过程中,我们经常会用到数组这一数据类型。但是,Vue.js不能观察到数组的length属性的变化,这是为什么呢? Vue.js对于数据的观察并非是通过原生JavaScript的Object.defineProperty()方法实现的,而是通过劫持数组的方法实现的。所以,当数组length属性发生变化时…

    Vue 2023年5月29日
    00
  • Vue组件开发之异步组件详解

    Vue组件开发之异步组件详解 什么是异步组件 异步组件,即按需加载组件,是指将组件拆分成各个小模块,并根据需要动态加载组件。这样可以在首次加载应用时,只加载必要的资源,以提升应用的性能。 异步组件使用方法 在 Vue.js 中,如何使用异步组件呢?在 Vue.js 中,我们可以通过 import() 语法或使用特殊的 async component 语法定义…

    Vue 2023年5月28日
    00
  • vue自定义可选时间的日历组件

    下面是详细讲解“vue自定义可选时间的日历组件”的完整攻略,过程中将包含两个示例说明。 简介 日历组件是一个常见的组件,它允许用户选择日期或时间,展示当前日期和月份等信息。Vue.js是一种前端框架,可以很好地支持日历组件的开发。有时候我们需要自定义可选时间的日历组件,以满足项目需求,接下来将介绍实现自定义可选时间的日历组件的步骤。 步骤 安装和导入依赖 首…

    Vue 2023年5月28日
    00
  • Vue中的情侣属性$dispatch和$broadcast详解

    Vue中的情侣属性$dispatch和$broadcast详解 在Vue.js中存在两个情侣属性:$dispatch和$broadcast。它们的作用是让不同层级的组件之间进行通信。本文将详细讲解这两个属性的用法以及示例说明。 $dispatch $dispatch是向父级组件派发一个自定义事件,触发父级组件的自定义事件处理器。该属性接收两个参数:事件名称和…

    Vue 2023年5月27日
    00
  • Vue.js第二天学习笔记(vue-router)

    Vue.js第二天学习笔记(vue-router) Vue-router 是 Vue.js 官方的路由插件,它和 Vue.js 的核心深度集成,可以非常方便地进行 Web 应用程序的路由控制管理。在学习 Vue.js 前端开发过程中,理解和掌握 Vue-router 的使用是非常重要的。 安装与引用 安装 Vue-router 可以使用 npm 或者引用 C…

    Vue 2023年5月27日
    00
  • 基于java实现websocket协议过程详解

    基于Java实现WebSocket协议过程详解 什么是WebSocket WebSocket是HTML5规范中的协议,它允许在客户端和服务器之间建立一种双向通信的协议,即WebSocket连接。该连接是基于TCP的,它通过在HTTP/1.1之上进行协商升级,可以在客户端和服务器之间创建持久性的连接,实现低延迟、高效率的实时通信。 WebSocket连接的建立…

    Vue 2023年5月28日
    00
  • Vue3+script setup+ts+Vite+Volar搭建项目

    下面详细讲解如何使用Vue3+script setup+ts+Vite+Volar搭建项目: 1. 安装Vite 首先需要安装最新的Vite,可以通过以下命令进行安装: npm install -g vite 2. 创建项目 Vite有一个快捷的命令可以帮助我们快速创建一个Vue3项目,只需要执行以下命令: npm init vite-app my-proj…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部