首页 > 其他分享 >vue3

vue3

时间:2023-02-04 11:35:39浏览次数:29  
标签:const 响应 app reactive vue3 组件 mouse

Vue3的特性

1. 新的构建工具

  • vite

1.2 基本使用

vite基本使用:

  • 创建项目 npm init vite-app 项目名称 或者 yarn create vite-app 项目名称
  • 安装依赖 npm i 或者 yarn
  • 启动项目 npm run dev 或者 yarn dev

1.3 main.js的改变

// 创建一个vue应用
// 1. 导入createApp函数
// 2. 编写一个根组件App.vue,导入进来
// 3. 基于根组件创建应用实例
// 4. 挂载到index.html的#app容器

import {createApp} from 'vue'
import App from './App.vue'
const app = createApp(App)
app.mount('#app')

2. 选项api和组合api

  • 选项api
    • 各个节点书写不同的代码,如data节点定义数据,methods节点定义方法
  • 组合api
    • 数据,方法... 一个实现完整逻辑的功能代码书写在一起

2.1 setup组件选项

  • setup是一个新的组件节点,作为使用组合api的起点
  • 生命周期函数钩子可以写在里面
  • 其生命周期早于beforeCreate
  • 在其中定义的数据和函数,需要返回回去

3. 生命周期

认识vue3.0生命周期钩子函数

  • setup 创建实例前
  • onBeforeMount 挂载DOM前
  • onMounted 挂载DOM后
  • onBeforeUpdate 更新组件前
  • onUpdated 更新组件后
  • onBeforeUnmount 卸载销毁前
  • onUnmounted 卸载销毁后

4. 定义响应式数据

  • reactive函数
    • 定义复杂数据类型,使之成为响应式数据
    • 常用于定义对象数据
    • toRef用于转换被reactive定义的响应式对象数据的某个属性为响应式数据
    • toRefs用于转换被reactive定义的响应式对象数据的所有属性为响应式数据
    • 修改值时
      • 修改原数据,reactive定义的
      • 修改被转换的,需要加上.value
  • ref函数
    • 定义简单或者复杂数据类型,使之成为响应式数据
    • 修改值时需要加上.value

5. 上述特性的一个综合案例

<template>
  <div class="container">
    <div>坐标</div>
    <div>x: {{x}}</div>
    <div>y: {{y}}</div>
    <hr>
    <div>{{count}} <button @click="add">累加1</button></div>
  </div>
</template>
<script>
import { onMounted, onUnmounted, reactive , ref, toRefs} from 'vue'
const useMouse = () => {
    // 1. 记录鼠标坐标
    // 1.1 申明一个响应式数据,他是一个对象,包含x y
    const mouse = reactive({
      x: 0,
      y: 0
    })
    // 1.3 修改响应式数据
    const move = (e) => {
      mouse.x = e.pageX
      mouse.y = e.pageY
    }
    // 1.2 等dom渲染完毕。去监听事件
    onMounted(()=>{
      document.addEventListener('mousemove', move)
    })
    // 1.4 组件消耗,删除事件
    onUnmounted(()=>{
      document.removeEventListener('mousemove', move)
    })

    return mouse
}
export default {
  name: 'App',
  setup () {

    const mouse = useMouse()

    // 2. 数字累加
    const count = ref(0) 
    const add = () => {
      count.value ++
    }



    return { ...toRefs(mouse), count, add }
  }
}
</script>
<style scoped lang="less"></style>

标签:const,响应,app,reactive,vue3,组件,mouse
From: https://www.cnblogs.com/lingxin1123/p/17091148.html

相关文章

  • vue3 与vue2的区别-cnblog
    vue3与vue2的区别1.template节点vue2只允许一个根节点vue3允许多个根节点2.创建工具vue3:使用vite,也可使用vue-clivue2:使用vue-clivite创建3.调试工......
  • vite + vue3 + js + xlsx 导出excel
    安装依赖 1npminstallxlsx--save 使用版本  封装js/*导出excel文件*//***导出excel文件实现思路分析**1.通过XLSX插件的XLSX.utils.book_new......
  • Vue3 Vite 打包后页面报错 Unknown option default
    问题目测这次问题出在axios上UncaughtError:Unknownoptiondefault解决参考这位朋友的文章解决了:vite打包axios的时候报错解决方案以前遇到过,时间一长忘了()......
  • Vue3 Vite 打包后页面报错 Function has non-object prototype 'undefined' in instan
    问题原本可以正常打包部署运行,前两天加了些新功能,再打包就遇到这个问题,其意为:函数在instanceofcheck中具有非对象原型“undefined”TypeError:Functionhasnon-object......
  • wangeditor富文本编辑和vue3
    官网:wangEditor  https://www.wangeditor.com/v5/为啥用这个富文本编辑器(我觉得官网写自己优势已经非常好了没有啥可补充的了) 文档特别的全和友好安装yarnadd......
  • vue3中的setup函数
    setup函数是组合式API的入口setup函数是页面启动后的自执行函数页面中所涉及的变量和方法都需要下载setup函数中在setup中定义的变量,方法都需要return出去才可以使用,否则......
  • vue3 bind绑定
    bind绑定不但可以动态绑定属性值  <divv-bind:id="dynamicId"></div>还可以动态绑定属性名  <av-bind:[attributeName]="url">...</a>以及表达式型的  <a:[......
  • Could not find a declaration file for module ‘xxx‘ (vue3+ts)
    vue3+ts框架搭建过程中遇到引入三方qs库出现eslitn提示'Couldnotfindadeclarationfileformodule‘qs‘';解决方案方案1:npmi--save-dev@types/qs此处......
  • 解决vite+vue3混合开发白屏问题
    开发环境:vite4.0+vue3.2使用场景:vite打包后将包嵌入app使用。问题描述:打包后app显示白屏。解决方案:默认的构建目标是能支持原生ESM语法的script标签、原生ESM动态导......
  • 总结了 Vue3 的七种组件通信方式,别再说不会组件通信了
    总结了Vue3的七种组件通信方式,别再说不会组件通信了播报文章网格化软件高品伟业2022-04-1916:35山东关注 写在前面  本篇文章是全部采用的......