HLJ 发布于
2024-05-23 01:59:10
172阅读

简介

什么是 Vue?

  • 是一款用于构建用户界面的 JavaScript 框架。
  • 基本的示例:
<div id="app">
  <button @click="count++">
    Count is: {{ count }}
  </button>
</div>

import { createApp, ref } from 'vue'
createApp({
  setup() {
    return {
      count: ref(0)
    }
  }
}).mount('#app')

Vue 是渐进式框架

  • 1、无需构建步骤,渐进式增强静态的 HTML
  • 2、在任何页面中作为 Web Components 嵌入
  • 3、单页应用 (SPA)
  • 4、全栈 / 服务端渲染 (SSR)
  • 5、Jamstack / 静态站点生成 (SSG)
  • 6、开发桌面端、移动端、WebGL,甚至是命令行终端中的界面

单文件组件

  • 在大多数启用了构建工具的 Vue 项目中,我们可以使用一种类似 HTML 格式的文件来书写 Vue 组件,它被称为单文件组件 (也被称为 *.vue 文件,英文 Single-File Components,缩写为 SFC)。顾名思义,Vue 的单文件组件会将一个组件的逻辑 (JavaScript),模板 (HTML) 和样式 (CSS) 封装在同一个文件里。下面我们将用单文件组件的格式重写上面的计数器示例:
<script setup>
import { ref } from 'vue'
const count = ref(0)
</script>

<template>
  <button @click="count++">Count is: {{ count }}</button>
</template>

<style scoped>
button {
  font-weight: bold;
}
</style>

单文件组件是 Vue 的标志性功能。如果你的用例需要进行构建,我们推荐用它来编写 Vue 组件。你可以在后续相关章节里了解更多关于单文件组件的用法及用途。但你暂时只需要知道 Vue 会帮忙处理所有这些构建工具的配置就好。

Vue API 风格

  • Vue 的组件可以按两种不同的风格书写:
  • 1、选项式 API
  • 2、组合式 API。
  • 选项式 API (Options API)
  • 可以用包含多个选项的对象来描述组件的逻辑,例如 data、methods 和 mounted。
<template>
  <button @click="increment">Count is: {{ count }}</button>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  methods: {
    increment() {
      this.count++
    }
  },
  mounted() {
    console.log(`The initial count is ${this.count}.`)
  }
}
</script>
  • 组合式 API (Composition API)
  • 组合式 API 与 <script setup> 搭配使用
<template>
  <button @click="increment">Count is: {{ count }}</button>
</template>

<script setup>
import { ref, onMounted } from 'vue'

// 响应式状态
const count = ref(0)

// 用来修改状态、触发更新的函数
function increment() {
  count.value++
}

// 生命周期钩子
onMounted(() => {
  console.log(`The initial count is ${count.value}.`)
})
</script>
  • 选项式 API 和 组合式 API的使用场景

  • 不需要使用构建工具,或者在低复杂度的场景中使用 Vue,例如渐进增强的应用场景,推荐采用选项式 API。
  • 用 Vue 构建完整的单页应用,推荐采用组合式 API + 单文件组件。
当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2024-05-23/636.html
最后生成于 2024-06-22 12:07:46
此内容有帮助 ?
0