Skip to content

Vue 基础知识

Vue 3 简介

Vue 3 是一个用于构建用户界面的渐进式框架。它的核心库只关注视图层,方便与其他库或已有项目整合。

组合式 API

setup 函数

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

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

// 方法
const increment = () => {
  count.value++
}

// 生命周期钩子
onMounted(() => {
  console.log('组件已挂载')
})
</script>

<template>
  <button @click="increment">点击次数: {{ count }}</button>
</template>

响应式基础

ref

javascript
import { ref } from 'vue'

const count = ref(0)
console.log(count.value) // 0

count.value++
console.log(count.value) // 1

reactive

javascript
import { reactive } from 'vue'

const state = reactive({
  count: 0,
  message: 'Hello'
})

state.count++ // 直接修改

计算属性

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

const firstName = ref('John')
const lastName = ref('Doe')

const fullName = computed(() => {
  return firstName.value + ' ' + lastName.value
})
</script>

侦听器

javascript
import { ref, watch } from 'vue'

const question = ref('')
const answer = ref('')

// 侦听 question 的变化
watch(question, async (newQuestion, oldQuestion) => {
  if (newQuestion.indexOf('?') > -1) {
    answer.value = '思考中...'
    try {
      answer.value = await getAnswer(newQuestion)
    } catch (error) {
      answer.value = '错误!'
    }
  }
})

生命周期钩子

  • onMounted: 组件挂载后
  • onUpdated: 组件更新后
  • onUnmounted: 组件卸载后
  • onBeforeMount: 组件挂载前
  • onBeforeUpdate: 组件更新前
  • onBeforeUnmount: 组件卸载前
javascript
import { onMounted, onUnmounted } from 'vue'

onMounted(() => {
  console.log('组件已挂载')
})

onUnmounted(() => {
  console.log('组件已卸载')
})

模板语法

文本插值

vue
<template>
  <div>{{ message }}</div>
</template>

属性绑定

vue
<template>
  <div v-bind:id="dynamicId">...</div>
  <!-- 简写 -->
  <div :id="dynamicId">...</div>
</template>

条件渲染

vue
<template>
  <div v-if="seen">现在你看到我了</div>
  <div v-else>现在你看不到我了</div>
</template>

列表渲染

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

更多内容持续更新中...

Released under the MIT License.