Vue 3.0 文档翻译 Introduction

引言

原文地址: http://blog.duhbb.com/2022/02/11/translation-of-introduction-in-vue-3-offiicial-doc/

欢迎访问我的博客: http://blog.duhbb.com/

Vue 3.0 文档翻译 Introduction

什么是Vue?

Vue的发音和view相似,是一个构建用户界面的Java框架. 在HTML,CSS和JavaScript的基础上提供了一个声明式(declarative)以及基于组件(component-based)的编程模型,能够帮你高效的开发用户界面, 不论是简单还是复杂的.

js代码如下:

import { createApp } from 'vue'

createApp({
  data() {
    return {
      count: 0
    }
  }
}).mount('#app')

template代码如下:

<div id="app">
  <button @click="count++">
    Count is: {{ count }}
  </button>
</div>

上面的例子展示了Vue的两个核心特点:

  • Declarative Rendering:
  • Reactivity:

后面的部分将详细讲述这些内容.

前提:你需要对HTML,CSS和JavaScript有基本的了解,不然后面没法交流

The Progressive Framework

Vue包含了前端开发所需要的很多共同特性,但是web开发又多又杂,Vue被设计为flexible和incrementally adoptable.

  • Enhancing static HTML without a build step
  • Embedding as Web Components on any page
  • Single-Page Application (SPA)
  • Fullstack / Server-Side-Rendering (SSR)
  • JAMStack / Static-Site-Generation (SSG)
  • Targeting desktop, mobile, WebGL or even the terminal

Single-File Components

Vue组件使用类似HTML的文件格式,被称作Single-File Component,也就是那些*.vue的文件,简称为SFC.

Vue SFC,人如其名,它将组件的逻辑(JavaScript),模板(HTML),以及样式(CSS)柔和在单个文件中.

下面这个例子就是使用SFC格式编写的:

<script>
export default {
  data() {
    return {
      count: 0
    }
  }
}
</script>

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

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

API Styles

Vue组件可以使用两种不同的API:Options APIComposition API.

Options API

在Options API中,我们使用可选的对象,比如data,methodsmounted来定义组件的逻辑.

options中定义的属性都会被暴露给函数中的this,而这个this正是指向组件实例的.

<script>
export default {
  // data()返回的属性成为可相应的状态并且会被暴露给this
  data() {
    return {
      count: 0
    }
  },

  // methods是用于mutate状态以及触发更新的函数
  // 他们可以被绑定template中的事件监听器
  methods: {
    increment() {
      this.count++
    }
  },

  // mounted函数将会在组件被mounted的时候被调用
  mounted() {
    console.log(`The initial count is ${this.count}.`)
  }
}
</script>

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

Composition API

在SFC中,Component API主要是和<script setup>一起使用.setup这个属性是告诉Vue执行编译期的转换,能让我们以更少的boilerplate来使用Composition API.

比如在<script setup>中引入以及定义的顶级变量/函数都可以在template中直接使用.

下面是Composition API的例子:

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

// reactive state
const count = ref(0)

// functions that mutate state and trigger updates
function increment() {
  count.value++
}

// lifecycle hooks
onMounted(() => {
  console.log(`The initial count is ${count.value}.`)
})
</script>

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

为什么要让我做选择,我tm该选哪个?

首先这两种风格的API是足够支持日常的各种使用滴.事实上Options API是通过Composition API来实现的(大概是这个意思)!

Options API主要是围绕"component instance"这个概念,比较贴合面向对象的思想.通过将响应的细节抽象出来以及强制代码以option groups的形式进行组织,这样对新手更加友好.

Composition API则主要围绕声明式的响应状态,很多函数都可以修改状态,一起处理复杂性.这种的话格式更加自由,需要对Vue的响应式有更深入的理解.因此,它对于组织代码以及复用逻辑的能力更强.

更多:Composition API FAQ

如果你是个Vue的菜鸟,我们一般推荐:

  • 学习的话,使用你更容易理解的方式,另外二者很多的核心概念都是互通的.
  • 生产使用:
    • 如果你不使用构建工具的话,就用Options API,或者是低复杂性的场景
    • 如果你打算使用全应用的Vue,就是用Composition API + Single-File Components

学习阶段你不必拘泥于一种.

还有问题?

讲这么清楚还有问题,那你去看FAQ吧

选择你的学习路径

  • Try the Tutorial, 上手做
  • Read the Guide, 读文档了解框架的方方面面
  • Check out the Example, 直接通过项目学习

结束语

原文地址: http://blog.duhbb.com/2022/02/11/translation-of-introduction-in-vue-3-offiicial-doc/

欢迎访问我的博客: http://blog.duhbb.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值