首页 > 其他分享 >初识vue3

初识vue3

时间:2023-04-18 12:55:05浏览次数:35  
标签:count 文件 实例 html 初识 vue3 组件 API

定义

Vue是一款Javascript框架,基于前端三大件,提供了具有组件化声明式渐进式的特点的编程模型。

核心功能

1.声明式渲染

2.响应式

组件之单文件组件

Vue最为核心的组成部分便是单文件组件,文件结尾为*.vue

宏观的逻辑是这样的:
*.vue创建组件-> .js文件中将组件实例化生成一个应用实例->挂载应用实例

要使用单文件组件,就必须使用构建工具。
单文件组件(SFC)的优势:

使用熟悉的 HTML、CSS 和 JavaScript 语法编写模块化的组件
让本来就强相关的关注点自然内聚
预编译模板,避免运行时的编译开销
组件作用域的 CSS
在使用组合式 API 时语法更简单
通过交叉分析模板和逻辑代码能进行更多编译时优化
更好的 IDE 支持,提供自动补全和对模板中表达式的类型检查
开箱即用的模块热更新 (HMR) 支持

API

1.选项式API
用包含多个选项的对象,描述具体的逻辑
选项所定义的属性会暴露在对象内部的thisthis指向当前的组件实例

2.组合式API
利用导入的API来描述逻辑。
往往与<script setup>结合起来使用,这样相当于在编译的时候告诉vue要进行一些处理,使得script中定义的顶层函数/变量能够在template中直接使用

以下为相同的组件按照两种方式进行搭建

//1. 选项式API
<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>


//2.组合式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>

构建vue3项目

  1. 通过vite,vue-cli等工具构建

  2. 通过CDN使用Vue
    分为 全局构建版本ES6构建版本

注:ES6为javascript的一种语法,可以进行模版化的导入等操作,要使用ES6,需要在<script>中加type="module",但是在单文件组件中,我们不需要这个就可使用import等语句,因为Vue3会将这个组件打包成javascript包,输出时自动按照ES6语法。

组件,根组件与应用实例,实际页面

自定向下来看,一个页面有静态与动态的部分;
静态部分有html构成,而动态部分则有javascript构成,将动态嵌入到静态元素,组成实际页面;
vue3采用了组件化的方式渲染DOM,而实际是通过将由组件构成的应用实例挂载到DOM上完成的;
一个html中可以挂载多个应用实例这些应用实例可以从同一个单文件组件得来,也可以从不同单文件组件中得来;
一个应用组件至少有一个根组件,即生成它时用的那个单文件组件,随后还可以在这个实例中添加组件;
添加的组件可以是全局组件,也可以是局部组件。
一个组件基本是由script与template组成,前者定义具体业务逻辑,后者是要呈现的内容,在html中通过<组件名></组件名>即可呈现模版内容;
若是未定义template,则其会自动将html容器当作模版,也就是说,在html文件中,可以直接实现template的语法,如:文本插值 等。

标签:count,文件,实例,html,初识,vue3,组件,API
From: https://www.cnblogs.com/wryyyyyyy/p/17329182.html

相关文章

  • Vue3 回顾vue2的响应式原理
    视频vue2.x的响应式实现原理:对象类型:通过Object.defineProperty()对属性的读取、修改进行拦截(数据劫持)。数组类型:通过重写更新数组的一系列方法来实现拦截。(对数组的变更方法进行了包裹)。Object.defineProperty(data,'count',{get(){},set(){}})......
  • vue3微信公众号商城项目实战系列(6)用户登录
    1.一个商城要实现购物的功能,需要能识别用户的身份,这样才能完成加购物车,下单,付款等操作。但微信公众号商城和PC端商城有些不一样,区别在于微信公众号商城使用微信支付的时候需要一个openid的参数(以后再具体讲)这个参数必须访问微信公众号提供的接口才能获取到,基于这个原因,用户登录......
  • Vue3 ref函数处理基本类型或对象类型
    基本类型视频对象类型视频2.ref函数作用:定义一个响应式的数据语法:constxxx=ref(initValue)创建一个包含响应式数据的引用对象(reference对象,简称ref对象)。JS中操作数据:xxx.value模板中读取数据:不需要.value,直接:<div>{{xxx}}</div>备注:接收的数据可以是:基本......
  • vue全家桶进阶之路32:Vue3 WatchEffect和watch 监听
    在Vue3中,watchEffect是一个用于监听响应式数据变化的API。它可以在函数内部自动跟踪数据的依赖,并在依赖变化时重新运行函数。watchEffect 的作用以及各个参数的功能讲解:watchEffect(effect:(onInvalidate:InvalidateCbRegistrator)=>void|(()=>void)|Promise<vo......
  • 【vue3-element-admin】Husky + Lint-staged + Commitlint + Commitizen + cz-git 配
    前言本文介绍vue3-element-admin如何通过Husky+Lint-staged+Commitlint+Commitizen+cz-git来配置Git提交代码规范。核心内容是配置Husky的pre-commit和commit-msg两个钩子:pre-commit:Husky+Lint-staged整合实现Git提交前代码规范检测/格式化(前提......
  • Vue3中 如何使用ref标签,对组件进行操作
    在Vue2中一般用this.$ref.xxxx进行获取组件对象Vue3中就不使用这个方法了例如:<el-uploadclass="upload-demo"action="":http-request="handleUpload":on-change="handleChange":before-upload="handl......
  • vue3中使用ref语法糖
    自从引入组合式API的概念以来,一个主要的未解决的问题就是ref和响应式对象到底用哪个。响应式对象存在解构丢失响应性的问题,而ref需要到处使用.value则感觉很繁琐,并且在没有类型系统的帮助时很容易漏掉.value写法优化以上是官方原话。大概就是新的语法糖可以让我们......
  • Vue3 vue-cli创建工程的工程结构分析
    视频不能用vue2的写法了componentsHelloWorld.vue<template><divclass="hello"><h1>{{msg}}</h1><p>Foraguideandrecipesonhowtoconfigure/customizethisproject,<br>checkoutthe......
  • 初识Cypress
    初识Cypress框架简介一款基于Node.js的web自动化测试框架为什么是Cypress新使用的语言更加贴近前端-->javascript、typescript为主可以覆盖单元、接口、ui自动化测试环境准备Node.js设置全局node--->在node安装路径下创建node_global--->输入:npmconfigsetprefix......
  • 前端学习笔记——Vue3组件间数值传递
    依据个人的学习需求,对Vue官网中组件部分内容的搬运和总结,可用于参看,想详细了解Vue3这部分特性的可以直接参考官网内容:https://cn.vuejs.orgprops是一种特别的attributes,我们可以在组件上生命注册。比如:如果我们要传递给博客文章组建一个标题的话,我们则必须在该组件的props列表......