当前位置: 首页 > article >正文

个人vue3-学习笔记

声明:这只是我个人的学习笔记(黑马),供以后复习用 。一天学一点,随时学随时更新。明天会更好的!

这里只给代码,不给运行结果,看不出来代码的作用我也该进厂了。。。。。

Day1 使用create-vue创建项目。 

1.检查版本。

node -v

2.创建项目

npm init vue@latest

可以用这个切回国内镜像源

npm config set registry https://registry.npmmirror.com

3. 安装依赖,启动项目

npm install
npm run dev

4.1写法

原始复杂写法setup写法:必须return

<!-- 开关:写组合式组件 -->
<script>
export default {
  setup() {
    console.log('setup')
    const message = 'hello world'
    const logMessage = () => {
      console.log(message)
    }
    return {//只有return返回一个对象,对象中的属性和方法,都可以在模板中使用
      message,
      logMessage,
    }
  },
  beforeCreate() {
    console.log('beforeCreate')
  },
}
</script>

<template>
  <!-- 不再要求唯一的根元素 -->
  <div>
    {
  { message }}
    <button @click="logMessage">log</button>
  </div>
</template>

<style scoped></style>

简单的语法糖写法

<script setup>
const message = 'hello world'
const logMessage = () => {
  console.log(message)
}
</script>
<template>
  <!-- 不再要求唯一的根元素 -->
  <div>
    {
  { message }}
    <button @click="logMessage">log</button>
  </div>
</template>

<style scoped></style>

注:1.setup选项在beforeCreate钩子之前自动执行 

        2.setup中的this不指向组件实例了,指向undefined

4.2 函数调用返回响应式数据

reactive()接受对象类型数据的参数传入并返回一个响应式的对象

<script setup>
// 1.导入函数
import { reactive } from 'vue'
//  2.执行函数 传入一个对象类型的函数 变量接受
const state = reactive({
  count: 0
})
const setCount = () => {
  state.count++
}
</script>
<template>
  <!-- 不再要求唯一的根元素 -->
  <div>
    <button @click='setCount'>
      {
  { state.count }}
    </button>
  </div>
</template>

<style scoped></style>

ref()接受简单类型或对象类型数据的参数传入并返回一个响应式的对象 

脚本区域修改ref的响应式数据 必须通过value属性

<script setup>
// // 1.导入函数
// import { reactive } from 'vue'
// //  2.执行函数 传入一个对象类型的函数 变量接受
// const state = reactive({
//   count: 0
// })
// const setCount = () => {
//   state.count++
// }

//1.导入ref 函数
import { ref } from 'vue'
//2.执行函数 传入一个简单类型或者对象类型的参数 变量接受
const count = ref(0)
console.log(count)

const setCount = () => {
  //脚本区域修改ref的响应式数据 必须通过value属性
  count.value++
}
</script>
<template>
  <!-- 不再要求唯一的根元素 -->
  <div>
    <button @click='setCount'>
      {
  { count }}
    </button>
  </div>
</template>

<style scoped></style>

4.3计算属性函数 

computed 返回计算后的数据(不应该有副作用)

<script setup>
// 1.导入computed
import { computed } from 'vue'
import { ref } from 'vue'
const list = ref([1, 2, 3, 4, 5, 6, 7, 8])

// 2.使用computed return计算后的值 变量接受
const computedList = computed(() => {
  return list.value.filter(item => item > 2)
})

setTimeout(() => {
  list.value.push(9, 10)
}, 3000);
</script>
<template>
  <!-- 不再要求唯一的根元素 -->
  <div>
    原始响应式数据-{
  { list }}
  </div>
  <div>
    计算后的响应式数据-{
  { computedList }}
  </div>
</template>

<style scoped></style>

 4.4watch函数 

侦听一个或多个数据的变化,数据变化时执行回调函数(参数:immediate(立即执行),deep(深度侦听))

<script setup>
// import {ref,watch} from 'vue'
// const count = ref(0)
// const setCount = () => {
//   count.value++
// }
// //调用watch方法,监听count的变化
// //watch 里面ref对象不需要加.value属性
// watch(count, (newValue, oldValue) => {
//   console.log(`count发生了变化,老值是${oldValue},新值是${newValue}`);
// })

import { ref, watch } from 'vue'
const count = ref(0)
const changeCount = () => {
  count.value++
}
const name = ref('cp')
const changeName = () => {
  name.value = 'pc'
}

watch(
  [count,name], 
  (
    [newValue,newName], [oldValue,oldName]
  ) => {
  console.log(`count或者name发生了变化,老值是${[oldValue,oldName]},新值是${[newValue,newName]}`);
})
</script>
<template>
  <!-- 不再要求唯

http://www.kler.cn/a/507390.html

相关文章:

  • 关于高级工程师的想法
  • ant design vue的级联选择器cascader的悬浮层样式怎么修改
  • 持续集成 01|Gitee介绍、Pycharm使用Gitee
  • Rust 零大小类型(ZST)
  • AIGC时代:如何快速搞定Spring Boot+Vue全栈开发
  • MTK6768 Android13 亮度条均匀调节实现
  • 服务器数据恢复—EMC存储POOL中数据卷被删除的数据恢复案例
  • Qt类的提升(Python)
  • 大模型赋能医疗项目,深兰科技与武汉协和医院达成合作
  • deepin-如何在 ArchLinux 发行版上安装 DDE 桌面环境
  • 老centos7 升级docker.io为docker-ce 脚本
  • 【GIS操作】使用ArcGIS Pro进行海图的地理配准(附:墨卡托投影对比解析)
  • 七大排序算法
  • 网络协议基础--IP协议
  • 【Linux】gawk编辑器二
  • nginx 修改内置 404 页面、点击劫持攻击。
  • 三十二、服务应用操作
  • Spring boot面试题----Spring Boot核心注解有哪些
  • 大文件上传的解决办法~文件切片、秒传、限制文件并发请求。。。
  • Lambda 架构之实时处理层的深度剖析:从原理到 Java 实战
  • XML序列化和反序列化的学习
  • 50.AppendAllText C#例子
  • 成功案例分享 — 芯科科技助力涂鸦智能打造Matter over Thread模块,简化Matter设备开发
  • C#数据库操作系列---SqlSugar完结篇
  • 摄像头模块在狩猎相机中的应用
  • 【Unity-Animator】通过 StateMachineBehaviour 实现回调