当前位置:首页 > VUE

vue模板实现

2026-03-09 07:15:38VUE

Vue 模板实现

Vue.js 使用基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。以下是 Vue 模板的核心实现方式:

插值

使用双大括号语法进行文本插值,数据绑定到 Vue 实例的 data 属性:

<div id="app">
  {{ message }}
</div>
new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

指令

Vue 指令是带有 v- 前缀的特殊属性,用于响应式地作用于 DOM:

<div v-if="seen">Now you see me</div>
new Vue({
  el: '#app',
  data: {
    seen: true
  }
})

事件绑定

使用 v-on 指令监听 DOM 事件:

<button v-on:click="reverseMessage">Reverse Message</button>
new Vue({
  el: '#app',
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})

双向绑定

v-model 指令实现表单输入和应用状态之间的双向绑定:

<input v-model="message">
new Vue({
  el: '#app',
  data: {
    message: ''
  }
})

条件渲染

v-ifv-else-ifv-else 用于条件性地渲染一块内容:

<div v-if="type === 'A'">A</div>
<div v-else-if="type === 'B'">B</div>
<div v-else>C</div>

列表渲染

v-for 指令基于一个数组来渲染一个列表:

<ul>
  <li v-for="item in items">{{ item.text }}</li>
</ul>
new Vue({
  el: '#app',
  data: {
    items: [
      { text: 'Learn JavaScript' },
      { text: 'Learn Vue' }
    ]
  }
})

计算属性

计算属性基于响应式依赖进行缓存,只在相关响应式依赖发生改变时重新求值:

new Vue({
  el: '#app',
  data: {
    firstName: 'Foo',
    lastName: 'Bar'
  },
  computed: {
    fullName: function () {
      return this.firstName + ' ' + this.lastName
    }
  }
})

组件

组件是 Vue 最强大的功能之一,允许开发者使用小型、独立和可复用的组件构建大型应用:

Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})

模板编译过程

Vue 的模板会被编译成渲染函数,这个过程大致分为以下阶段:

  1. 解析:将模板字符串解析成抽象语法树(AST)
  2. 优化:遍历 AST 标记静态节点,用于后续的 patch 过程优化
  3. 生成:将 AST 转换为渲染函数字符串

单文件组件

Vue 单文件组件(.vue 文件)将模板、脚本和样式封装在一个文件中:

vue模板实现

<template>
  <div class="example">{{ msg }}</div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello world!'
    }
  }
}
</script>

<style>
.example {
  color: red;
}
</style>

模板注意事项

  • 避免在模板中使用复杂逻辑,应将复杂计算移至计算属性或方法中
  • 对于需要条件渲染大量元素的情况,考虑使用 v-show 而非 v-if
  • v-for 中始终使用 :key 以便 Vue 能够跟踪每个节点的身份
  • 避免直接操作 DOM,应通过数据驱动视图的变化

标签: 模板vue
分享给朋友:

相关文章

vue 实现弹幕

vue 实现弹幕

vue 实现弹幕的方法 使用 CSS 动画和动态渲染 在 Vue 中实现弹幕效果,可以通过动态渲染弹幕元素并结合 CSS 动画实现。以下是具体步骤: 数据准备 创建一个数组存储弹幕数据,每条弹幕包…

vue实现过滤

vue实现过滤

Vue实现过滤的方法 在Vue中实现数据过滤可以通过多种方式完成,以下是几种常见的方法: 使用计算属性过滤 计算属性是Vue中处理数据过滤的理想选择,它们基于响应式依赖进行缓存,只有在相关依赖发生改…

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项目…

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,以下是一些常见的方法: 使用 v-bind 绑定图片路径 通过 v-bind(或简写为 :)动态绑定图片的…

vue app 实现

vue app 实现

Vue App 实现步骤 创建Vue项目 使用Vue CLI或Vite初始化项目。Vue CLI适合传统项目,Vite适合现代轻量级应用。 npm create vue@latest my-vu…

黑马vue实现

黑马vue实现

以下是关于使用 Vue.js 实现黑马相关功能或项目的关键方法和实践指南: 环境配置与项目初始化 安装最新版 Vue CLI 或使用 Vite 创建项目: npm create vue@lates…