什么是Vue?
官方原文:Vue是一款用于构建用户界面的JavaScript框架。它基于标准的HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。
简单来说,Vue就是一个构建用户界面的前端框架
Vue的两个核心功能
- 声明式渲染
Vue基于标准HTML扩展了一套模板语法,使我们可以声明式地描述最终输出的HTML和JavaScript状态之间的关系。 - 响应性
Vue会自动追踪JavaScript状态并在其发生变化时响应式地更新DOM。
如何理解Vue是一种渐进式框架?
什么是渐进式框架?
简单地说,渐进式的概念是分层设计,每层可选,不同层可以灵活接入其他方案架构模式。
渐进式的例子:
对我们开发人员来说,往往需要购买一个服务器来进行系统的开发工作。
- 我们要买一个服务器,首先选择一个企业提供的服务器,我们可以选择阿里云也可以选择腾讯云或者华为云。
- 接着我们可以选择对应企业服务器提供的各种操作系统,比如Ubantu、Centos或者Windows。
- 在完成操作系统的安装和初始化中,我们可以选择在系统上安装自己想要的软件,也可以选择不安装。
在以上这个例子当中,经历了服务器供应商/操作系统/软件这三层,每层都是可以选择的,也可以接入其他产品。这就是一个渐进式的产品。
综上所述,渐进式的最大好处就是灵活,可以根据需求进行定制。
Vue渐进式的理解
Vue核心的功能,是一个视图模板引擎。在声明式渲染(视图模板引擎)的基础上,可以通过各种各样的组件系统、客户端路由、大规模状态管理来构建一个完整的框架。而且这些功能是互相独立,可以在核心功能的基础上任意选用其他组件而不用组合在一起。符合渐进式的概念,所以Vue是一个渐进式框架。
单文件组件
在Vue项目中,可以用一个类似HTML格式来书写Vue组件,称为单文件组件(也被叫做.vue文件)。顾名思义就是将有HTML(模板)、CSS(样式)、JavaScript(逻辑)封装在同一个文件里。
<script>
export default {
data() {
return {
count: 0
}
}
}
</script>
<template>
<button @click="count++">Count is: {{ count }}</button>
</template>
<style scoped>
button {
font-weight: bold;
}
</style>
Vue中的API风格
Vue中有两种不同的风格书写组件:
- 选项式API
- 组件式API
选项式API
使用选项式API,可以包含多个选项的对象组件逻辑。比如data、method和mounted。选项所定义的属性都会暴露在函数内部的this上,它指向当前组件实例。
<script>
export default {
// data() 返回的属性将会成为响应式的状态
// 并且暴露在 `this` 上
data() {
return {
count: 0
}
},
// methods 是一些用来更改状态与触发更新的函数
// 它们可以在模板中作为事件监听器绑定
methods: {
increment() {
this.count++
}
},
// 生命周期钩子会在组件生命周期的各个不同阶段被调用
// 例如这个函数就会在组件挂载完成后被调用
mounted() {
console.log(`The initial count is ${this.count}.`)
}
}
</script>
<template>
<button @click="increment">Count is: {{ count }}</button>
</template>
组件式API
通过组件式的API,我们可以导入API函数来描述组件逻辑。
<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>
<template>
<button @click="increment">Count is: {{ count }}</button>
</template>
标签:count,Vue,HTML,渐进式,组件,Vue3.0,------,API
From: https://www.cnblogs.com/iceweiop/p/17276425.html