基于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日

相关文章

  • 一篇Vue、React重点详解大全

    一篇Vue、React重点详解大全 本文旨在给读者一份完整的Vue和React学习指南,包括两个框架的核心概念、使用方法、常见问题等,帮助读者更好地理解和掌握这两个流行的前端框架。 Vue 1. Vue基础概念 Vue是一款渐进式JavaScript框架,它的特点是易用、灵活、高效,适用于开发中小型Web应用。Vue的核心概念包括: 1.1 Vue实例 Vu…

    Vue 2023年5月27日
    00
  • Vue自定义指令详细

    Vue自定义指令详细攻略 Vue提供了许多内置指令用于操作DOM元素,如v-if、v-show、v-bind等。但是,如果我们想要自定义一些不同于Vue提供的指令来操作DOM元素,该怎么做呢?这时候,Vue的自定义指令就派上用场了。 自定义指令的基本使用 Vue允许开发者自定义指令,只需要在Vue实例中的directives选项中注册即可。 自定义指令需要定…

    Vue 2023年5月27日
    00
  • vue3.0自定义指令(drectives)知识点总结

    下面就是关于“vue3.0自定义指令(drectives)知识点总结”的完整攻略: 一、什么是Vue自定义指令? 在Vue中,除了内置指令(例如:v-if、v-for等)之外,还可以自定义指令,用于对DOM元素进行增强操作。自定义指令是以v-作为前缀定义的,例如:v-myDirective。 自定义指令由两个钩子函数构成,分别为bind和update。其中b…

    Vue 2023年5月28日
    00
  • vue作用域插槽详解、slot、v-slot、slot-scope

    作用域插槽是Vue组件系统中非常重要的一个概念,它使得组件的嵌套变得更加灵活,可以方便地实现组件之间的数据交流。本文将详细讲解Vue中的作用域插槽,包括slot、v-slot、slot-scope及其使用方法,并且提供两个实例说明。 1. slot和v-slot简介 在Vue中,我们可以通过slot来定义组件模板的插槽,然后在父组件中通过一些内容填充的方式来…

    Vue 2023年5月28日
    00
  • Vue全局事件总线你了解吗

    当进行 Vue 项目开发时,有时需要在组件之间进行通信,常见的方式有props、自定义事件、Vuex等。除了这些方式,还可以使用Vue的全局事件总线来实现组件之间的通信。 什么是Vue全局事件总线? Vue全局事件总线是通过Vue实例来实现的全局事件总线。Vue实例是一个事件代理,它中转和分发事件通知,从而实现各组件之间的通信。它的实现是通过创建一个Vue实…

    Vue 2023年5月29日
    00
  • vue实现分环境打包步骤(给不同的环境配置相对应的打包命令)

    下面是实现分环境打包的步骤: 步骤一:配置不同环境的参数 在Vue项目中,我们可以通过创建不同的环境变量文件来配置不同环境中的参数。比如我们可以通过创建.env.development、.env.production、.env.test等文件分别配置开发环境、生产环境和测试环境的参数。其中以VUE_APP_前缀的变量可以在项目中通过process.env对象…

    Vue 2023年5月28日
    00
  • 利用Vue3实现一个可以用js调用的组件

    实现一个可通过 JS 调用的 Vue3 组件,需要以下几个步骤: 定义组件: defineComponent 注册组件: createApp().component 渲染组件: createApp().mount 下面是两个示例来说明如何实现。 示例一: 本示例将展示如何通过 JS 调用一个带有参数的组件。 1. 定义组件 import { defineCo…

    Vue 2023年5月27日
    00
  • Vue Element前端应用开发之常规的JS处理函数

    Vue Element前端应用开发之常规的JS处理函数 在Vue Element前端应用开发中,JS处理函数是非常常见的。下面给出了一些常见JS处理函数的使用方法和示例。 1. 数组的过滤函数filter() 简介 filter() 是数组的一个常用方法,它返回一个新的被过滤后的数组,原数组不发生变化。 filter() 接受一个回调函数作为参数,该回调函数…

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