当前位置:首页 > 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>

指令

<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 属性提高渲染性能

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

合理使用 v-ifv-show

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

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

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

vue实现模板

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

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

相关文章

vue实现token

vue实现token

Vue 中实现 Token 认证的方法 在 Vue 中实现 Token 认证通常涉及前端与后端的交互,包括 Token 的获取、存储、发送和刷新等操作。以下是具体实现步骤: 获取 Token 用户登…

vue实现标签

vue实现标签

Vue 实现标签的方法 在 Vue 中实现标签功能可以通过多种方式完成,以下是几种常见的方法: 使用动态组件 动态组件可以根据不同的条件渲染不同的标签内容。通过 :is 属性动态绑定组件名,实现标签…

vue实现fadein

vue实现fadein

Vue 实现 FadeIn 效果 在 Vue 中实现淡入(FadeIn)效果可以通过 CSS 过渡、动画或第三方库实现。以下是几种常见方法: 使用 CSS 过渡 通过 Vue 的过渡系统结合 CSS…

vue实现ajax

vue实现ajax

Vue 中实现 AJAX 的几种方法 在 Vue 中实现 AJAX 请求可以通过原生 JavaScript 的 XMLHttpRequest、第三方库如 axios 或 fetch API 来完成。以…

vue实现mouseout

vue实现mouseout

Vue 实现 mouseout 事件的方法 在 Vue 中实现 mouseout 事件可以通过多种方式完成,以下是几种常见的方法: 使用 v-on 指令 Vue 提供了 v-on 指令(或简写为 @…

vue实现ssr

vue实现ssr

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