vue3.0 如何使用useroute(详解vue3中setUp和reactive函数的用法)
vue3.0 如何使用useroute
详解vue3中setUp和reactive函数的用法1 setUp的执行时机
我们都知道,现在vue3是可以正常去使用methods的。
但是我们却不可以在setUp中去调用methods中的方法。
为什么了???
我们先了解一下下面这两个生命周期函数,分别是:
beforeCreate 表示data 中的数据还没有初始化,是不可以使用的
Created : data已经被初始化了,可以使用
setUp在beforeCreate 和 Created 这两个函数之间。
是不是就知道为啥setUp中不可以去调用methods中的方法了。
2.setUp中无法使用data中的数据和调用methods的方法
<script> export default { name: 'App', data:function(){ return { mess:"我是data" } }, methods:{ func(){ console.log("methods中的func") }, }, setup(){ console.log('this',this);//undefined this.func();//无法调用的哈 }, } </script>
3.setUp函数的注意点
(1)由于我们不能够在setUp函数中使用data和methods.
所以vue为了避免我们的错误使用,直接将setUp函数中的this
修改成为了undefined
(2) setUp函数只能够数同步的,不能够是异步的哈。
就是说你不能够这样操作
async setup(){
},
这样会导致界面空白哈
4 Vue3中的reactive
在Vue2中响应式数据是通过de fineProperty来实现的.
而在Vue3中响应式数据是通过ES6的Proxy来实现的
reactive需要的注意点
reactive参数必须是对象(json/arr)
如果给reactive传递了其它对象
默认情况下修改对象,界面不会自动更新
如果想更新,可以通过重新赋值的方式
5 reactive传入字符串数据不跟新
<template> <li> <li> <li>{{str}}</li> <button @click="func1">按钮</button> </li> </li> </template> <script> import {reactive} from 'vue' export default { name: 'App', setup(){ // reactive 的本质就是传入的数据包装成一个proxy对象 // 由于在创建的时候,传递的不是一个对象,那么将不会实现响应式。 let str=reactive(123) function func1(){ console.log(str);//123 str=666; } return {str,func1 } }, } </script>
我们发现点击按钮的时候,视图并没有更新。
因为我们传不是一个对象.如果想跟新视图。
应该使用ref函数
6 reactive传入数组
<template> <li> <li> <li>{{arr}}</li> <button @click="func1">按钮</button> </li> </li> </template> <script> import {reactive} from 'vue' export default { name: 'App', setup(){ let arr=reactive([{name:'张三',age:19},{name:'李四',age:39}]) function func1(){ arr[0].name="我是张三的哥哥" } return {arr,func1 } }, } </script>
7 reactive传入其他对象的跟新方式
<template> <li> <li> <li>{{sate.time}}</li> <button @click="func1">按钮</button> </li> </li> </template> <script> import {reactive} from 'vue' export default { name: 'App', setup(){ let sate=reactive({ time:new Date() }) function func1(){ //传入的是其他对象,直接跟新 sate.time="2021年-6月-9日"; } return {sate,func1 } }, } </script>
以上就是vue3 setUp和reactive函数详细讲解的详细内容,更多关于vue3 setUp和reactive函数的资料请关注开心学习网其它相关文章!
- vue左右联动列表(vue+iview的菜单与页签的联动方式)
- vue封装一个功能函数(vue中利用mqtt服务端实现即时通讯的步骤记录)
- vue各组件如何引用(Vue局部组件数据共享Vue.observable的使用)
- vue使用echarts教程(Vue使用echarts可视化组件的方法)
- vue加element ui弹窗(Vue中ElementUI分页组件Pagination的使用方法)
- vue弹窗模板(Vue登录页面的动态粒子背景插件实现)
- vue滑动切换页面(vue实现点击翻转效果)
- vue3.0安装element(vue3+electron12+dll开发客户端配置详解)
- django框架教程第100讲(详解Django+Vue+Docker搭建接口测试平台实战)
- vue3函数详解(手把手教你用vue3开发一个打砖块小游戏)
- vue统计代码行数(vue实现计数器简单制作)
- vue全局配置文件env(vue项目多环境配置.env的实现)
- vue计算两个日期差几分钟(vue实现同时设置多个倒计时)
- vue跨域代理怎么写(解决vue $http的get和post请求跨域问题)
- vue可以使用模态框modal吗(vue基于Teleport实现Modal组件)
- vue实现展开动画(Vue组件实现旋转木马动画)
- 数学语文题目(语文的数学题)
- 香蕉(香蕉三种人不宜吃)
- 没钱可以快乐吗(没钱也能快乐吗)
- 快乐是什么(快乐就是)
- 东南亚有哪个国家(东南亚有哪个国家最发达)
- 东南亚安全吗(好不好挣钱)
热门推荐
- css3画出苹果手机(基于CSS3画一个iPhone)
- ideadocker调试(Idea部署远程Docker并配置文件)
- Web安全色
- 阿里云如何部署自己的服务器(如何快速搭建一个阿里云服务器)
- laravel 框架关键技术解析(在laravel框架中实现封装公共方法全局调用)
- 云锁服务器怎么设置安全(SugarHosts云服务器如何开启访问端口和使用安全组)
- vue创建项目同时引入elementui(Vue Element前端应用开发之开发环境的准备工作)
- numpy如何创建数组(NumPy 数组使用大全)
- tomcat的startup闪退的原因(直接双击启动tomcat中的startup.bat闪退原因及解决方法)
- css控制表格换行