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

yizhihongxing

基于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响应式对象是如何实现的(2)

    首先需要提醒一下,这个题目是指“Vue3响应式对象是如何实现的”系列文章的第二篇,如果还没看过第一篇的话,建议先去看一下第一篇的内容。 Vue3的响应式系统在内部实现中使用了ES6的Proxy对象。下面我将从两个方面来详细介绍其中的细节。 Proxy的基本用法 Proxy是ES6的一个新特性,可以用来拦截对象的底层操作,比如读取属性、写入属性、删除属性等。它…

    Vue 2023年5月28日
    00
  • 深度解析 Vue3 的响应式机制

    深度解析 Vue3 的响应式机制 Vue3 的响应式机制借鉴了 ES6 中的 Proxy,相较于 Vue2 中的 Object.defineProperty,其实现更加高效灵活。下面将详细介绍 Vue3 的响应式机制及其实现原理。 Vue3 的响应式机制 Vue3 中的响应式机制是通过 reactivity 模块来实现的,它主要包括以下几个部分: react…

    Vue 2023年5月27日
    00
  • vue实现文字加密功能

    接下来我将详细讲解“vue实现文字加密功能”的完整攻略。 简介 在信息化的时代,对于个人隐私的保护越来越受到人们的关注。其中,对于敏感性文字的加密就显得尤为重要。因此,本文将介绍如何在vue项目中实现文字加密的功能。 准备工作 在开始实现之前,我们需要先进行以下准备工作: 安装vue-cli:在命令行界面中运行npm install -g vue-cli。 …

    Vue 2023年5月28日
    00
  • 一步步教你用Vue.js创建一个组件(附代码示例)

    下面是针对“一步步教你用Vue.js创建一个组件(附代码示例)”这篇文章的详细讲解: 标题 第一条规范的标题要求是用H1标签,描述清楚这篇文章的主题。因此,该文章的标题应该是: 一步步教你用Vue.js创建一个组件(附代码示例) 代码块 在文章中,我们需要使用代码块来展示一些具体的代码实例。由于该文章的主题是Vue.js创建组件,因此我们需要使用Vue.js…

    Vue 2023年5月27日
    00
  • Vue extend的基本用法(实例详解)

    Vue.extend的基本用法 介绍 Vue.extend是Vue.js提供的扩展一个构造函数的功能。扩展一个构造函数,可以使用基础 Vue 构造器,创建一个“子类”,允许在它基础上拓展一些功能。Vue.extend返回的是一个新的构造器,我们可以基于这个构造器创建出新的Vue实例。 语法 Vue.extend(options) options:选项对象,提…

    Vue 2023年5月28日
    00
  • Element table 上下移需求的实现

    接下来我将为您提供实现Element UI表格上下移需求的攻略。这个需求的主要目标是:在Element UI表格中,为用户提供左侧上下移动按钮,使其在表格中对表格行进行上下移动排序。 1. 准备工作 首先,我们需要安装 element-ui 和 lodash,如果您的项目中已经安装了这两个依赖包,可以省略此步骤。 npm install element-ui…

    Vue 2023年5月28日
    00
  • mpvue写一个CPASS小程序的示例

    下面是mpvue写一个CPASS小程序的详细攻略,包含两条示例说明: 一、先决条件 在正式开始编写小程序之前,需要安装好cpass-cli和mpvue框架,并且具有mpvue开发的基础知识。 二、创建项目及配置 2.1 创建项目 使用cpass-cli创建一个mpvue工程: cpass create demo –template mpvue 2.2 配置…

    Vue 2023年5月27日
    00
  • vue中输入框事件的使用及数值校验方式

    下面是关于”vue中输入框事件的使用及数值校验方式”的完整攻略。 1. 输入框事件的使用 1.1 v-model指令 使用v-model指令可以简单地绑定数据和input输入框,让输入框内容的变化与数据的变化同步。在以下的示例中,我们将data中的message绑定到一个input输入框中: <template> <div> <…

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