当前位置:首页 > VUE

vue实现模板

2026-03-07 03:16:04VUE

Vue 模板实现方法

Vue.js 提供了多种方式实现模板功能,以下是常见的几种方法:

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

<template>
  <div>
    <h1>{{ title }}</h1>
    <button @click="handleClick">Click me</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: 'Vue Template'
    }
  },
  methods: {
    handleClick() {
      console.log('Button clicked')
    }
  }
}
</script>

<style scoped>
h1 {
  color: #42b983;
}
</style>

字符串模板 直接在组件选项中定义模板字符串:

new Vue({
  template: `
    <div>
      <p>{{ message }}</p>
    </div>
  `,
  data() {
    return {
      message: 'Hello Vue!'
    }
  }
})

DOM 内联模板 在 HTML 中直接编写模板:

<div id="app">
  <template id="my-template">
    <span>{{ counter }}</span>
    <button @click="increment">+1</button>
  </template>
</div>

<script>
new Vue({
  el: '#app',
  template: '#my-template',
  data: {
    counter: 0
  },
  methods: {
    increment() {
      this.counter++
    }
  }
})
</script>

渲染函数 使用 JavaScript 的渲染函数创建虚拟 DOM:

new Vue({
  el: '#app',
  render(h) {
    return h('div', [
      h('h1', 'Rendered Title'),
      h('button', {
        on: {
          click: this.handleClick
        }
      }, 'Render Button')
    ])
  },
  methods: {
    handleClick() {
      alert('Button clicked')
    }
  }
})

模板语法特性

插值

<template>
  <span>Message: {{ msg }}</span>
</template>

指令

vue实现模板

<template>
  <p v-if="show">Conditional rendering</p>
  <a v-bind:href="url">Bound attribute</a>
  <button v-on:click="doSomething">Event binding</button>
</template>

计算属性

computed: {
  reversedMessage() {
    return this.message.split('').reverse().join('')
  }
}

条件渲染

<template>
  <div v-if="type === 'A'">Type A</div>
  <div v-else-if="type === 'B'">Type B</div>
  <div v-else>Other Type</div>
</template>

列表渲染

<template>
  <ul>
    <li v-for="(item, index) in items" :key="item.id">
      {{ index }} - {{ item.text }}
    </li>
  </ul>
</template>

模板最佳实践

为列表项设置唯一的 key 属性提高渲染性能

vue实现模板

避免在模板中使用复杂逻辑,将复杂计算移至计算属性

合理使用 v-ifv-show

  • v-if 是真正的条件渲染,会销毁和重建元素
  • v-show 只是切换 CSS 的 display 属性

对于频繁切换的元素使用 v-show,运行时条件变化少的用 v-if

使用 v-bindv-on 的缩写形式:

<template>
  <a :href="url">Link</a>
  <button @click="submit">Submit</button>
</template>

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

相关文章

vue实现页面截屏

vue实现页面截屏

使用html2canvas库实现截屏 html2canvas是一个流行的JavaScript库,可以将DOM元素转换为Canvas图像。在Vue项目中安装html2canvas: npm insta…

vue 实现挂载

vue 实现挂载

Vue 实现挂载的基本方法 在 Vue 中,挂载是将 Vue 实例与 DOM 元素关联的过程。通过挂载,Vue 可以管理 DOM 并实现数据绑定和响应式更新。 创建 Vue 实例并挂载 const…

vue 实现树状

vue 实现树状

Vue 实现树状结构的方法 递归组件实现树状结构 递归组件是 Vue 中实现树状结构的常见方法。通过组件自身调用自身,可以轻松构建多层级树状结构。 <template> <ul…

vue实现注销

vue实现注销

实现用户注销功能 在Vue应用中实现用户注销功能通常涉及清除用户会话、重置应用状态并跳转到登录页面。以下是具体实现方法: 清除用户认证信息 使用Vuex或Pinia管理用户状态时,需在注销时重置存储…

vue实现ssr

vue实现ssr

Vue 实现 SSR(服务端渲染) Vue 的服务端渲染(SSR)允许在服务器端生成完整的 HTML 内容,再发送到客户端,提升首屏加载速度和 SEO 友好性。以下是实现 Vue SSR 的关键步骤和…

vue实现tap

vue实现tap

Vue 实现 Tap 事件 在移动端开发中,Tap 事件比 Click 事件更常用,因为 Click 事件有 300ms 延迟。以下是几种在 Vue 中实现 Tap 事件的方法。 使用第三方库 安装…