IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue3.0,setup()的使用,Composition Api(组合式api)data,computed,methods,watch -> 正文阅读

[JavaScript知识库]vue3.0,setup()的使用,Composition Api(组合式api)data,computed,methods,watch

vue3.0项目创建好之后,来看看一个简单组件内的代码顺便介绍几个特点:

1.组合式api就是指把vue2.0中的 datacomputedmethodswatch都集中在3.0中的setup()中
2.setup取代beforeCreatecreated这两个周期,也就是原本放在这两个钩子的内容现在放在setup中
3.在setup里无法再使用this,因为在执行setup的时候组件实例还没创建成功(setup执行在beforeCreate之前)。
4.接收两个参数propscontext(具体的后面讲)
5.代码可读性更高,维护也更方便。当然也完美兼容vue2.x

<template>
  <div class="home">
	{{user.name}}--{{user.age}}--{{num}}--{{doubleCount}}
	<button @click="change"></button>
  </div>
</template>

<script>
import { ref, reactive, computed, watch} from 'vue'
export default {
  name: 'Home',
  setup () {
  	const user = reactive({ name: 'jerry', age: 18}) // 创建引用类型数据使用reactive
  	const num = ref(6)	// 创建基础数据类型使用ref,使用是用.vulue
	const doubleCount = computed(() => {
      	return num.value * 2
    })
    // watch的单个值写法
    watch(() => num.value, (newValue, old) => {
    	// newValue新值,old旧值
    	console.log(newValue, old, '--w')
    })
    // watch的多个值写法
    /* const num1 = ref(11)
    watch([count, count1], ([newCount, newCount2], [oldCount, oldCount2]) => {
      console.log([newCount, newCount2], '--', [oldCount, oldCount2], '--w')
    })
    watch([count, count1], (newValue, oldValue) => {
     	console.log(newValue)// [newCount, newCount2]
      	console.log(oldValue)// [oldCount, oldCount2]
    }) */
    const change = () => {
      	num.value++
    }
    return {
    	user, 
    	num,
    	doubleCount,
    	change
    }
  },
  created () {
  	// vue2.0的内容也还是可以照常用的
  }
}
</script>

setup()的两个参数

<script>
import { toRefs, toRef } from 'vue'
export default {
  name: 'Home',
  // 因为props是响应性的,使用解构后会消除其响应性,所以需要使用toRefs, toRef
  // 但是context不具有响应性,可以直接使用解构赋值,但是只能访问attrs, slots, emit, expose
  setup (props, context) {
    const { name } = toRefs(props)
    const { name0 } = toRef(props, 'jerry') // toRef的第二个参数就类似于函数形参的默认值
   	const {attrs, slots, emit, expose} = context // 可以打印出来自己去看这几个属性
   	return {
    }
  }
}
</script>

方便维护,便于理解
这样看就不会像vue2.0那样,在维护的时候想要查询某个变量的逻辑,要去data,watch,methos等等里面去找,代码一多,眼睛都给你看画,脑壳看痛

<script>
import { ref, reactive } from 'vue'
export default {
  name: 'Home',
  setup (props, context) {
	const num = ref(0)
	/*
	.
	.这里都是对num的操作代码
	.
	*/
	
	const user = reactive({name: 'jerry'})
	/*
	.
	.这里都是对user的操作代码
	.
	*/
   	return {
    }
  }
}
</script>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:14:48  更:2022-03-30 18:16:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:17:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码