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

建设p2p网站123

建设p2p网站,123,场口一站式建站哪家公司好,企业网站栏目规划的重要性往期内容: 《Vue零基础入门教程》合集(完结) 《Vue进阶教程》第一课:什么是组合式API 《Vue进阶教程》第二课:为什么提出组合式API 《Vue进阶教程》第三课:Vue响应式原理 通过前面的学习, 我们了解到r…

  往期内容:

《Vue零基础入门教程》合集(完结)

《Vue进阶教程》第一课:什么是组合式API

《Vue进阶教程》第二课:为什么提出组合式API

《Vue进阶教程》第三课:Vue响应式原理

通过前面的学习, 我们了解到reactive可以将一个普通对象转换成响应式对象.

那么, 接下来我们就详细研究一下这个函数.

研究函数主要从这样三个方面

  1. 输入, 也就是参数
  2. 作用, 做了什么
  3. 输出, 也就是返回值
  1. 参数: 只能是引用类型数据, 不能是值类型数据
  2. 作用: 创建传入对象的深层代理, 并返回代理后的对象
  3. 返回值: 一个Proxy代理对象

1) 深层代理

不管传入的对象存在多少层嵌套(对象套对象的情况), 每一层都具有响应性

示例

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="../node_modules/vue/dist/vue.global.js"></script></head><body><script>const { reactive, effect } = Vueconst pState = reactive({name: 'xiaoming',age: 20,gf: {name: 'xiaomei',city: {name: 'wuhan',},},})effect(() => {console.log(`${pState.name}的女朋友叫${pState.gf.name}, 在${pState.gf.city.name}`)})setTimeout(() => {console.log('过了一段时间, 她去了beijing')// 不管嵌套多少层, 都具有响应性pState.gf.city.name = 'beijing'}, 1000)</script></body>
</html>

2) 重复代理

  1. 对同一个普通对象, 多次代理, 返回的结果唯一
  2. 对代理后的对象再次代理, 返回的结果唯一

以上, 可以理解为单例模式, reactive创建的代理对象只会存在一个

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="../node_modules/vue/dist/vue.global.js"></script></head><body><script>const { reactive, effect } = Vueconst state = { name: 'xiaoming' }const p1 = reactive(state)const p2 = reactive(state)// 对同一个对象多次代理, 返回的结果唯一console.log(p1 === p2) // trueconst p3 = reactive(p1)// 对代理后的对象, 再次代理, 返回的结果唯一console.log(p3 === p1) // true</script></body>
</html>

3) 局限性

  1. 传入参数只能是对象
  2. 解构或者赋值操作会丢失响应性

示例1

解构赋值后的变量没有响应性

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="../node_modules/vue/dist/vue.global.js"></script></head><body><div id="app"></div><script>const { reactive, effect } = Vueconst pState = reactive({ name: 'xiaoming' })// 对代理对象进行解构let { name } = pStateeffect(() => {app.innerHTML = pState.name})setTimeout(() => {name = 'xiaomei'console.log('对解构后的name操作, 不会触发响应式')}, 1000)</script></body>
</html>

示例2

赋值操作丢失响应性

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="../node_modules/vue/dist/vue.global.js"></script></head><body><div id="app"></div><script>const { reactive, effect } = Vuelet todos = reactive([])effect(() => {app.innerHTML = JSON.stringify(todos)})// 模拟向接口请求setTimeout(() => {// 将接口返回的数据赋值给todos, 导致todos丢失了响应性todos = [{ id: 1, content: 'todo-1' },{ id: 2, content: 'todo-2' },]}, 1000)</script></body>
</html>

http://www.yayakq.cn/news/514433/

相关文章:

  • wordpress网站维护教程wordpress站点的临时域名
  • 公司网站后台上怎么上传图片呢推荐郑州网站建设公司
  • 网站建设都需要什么文案电子商务网站建设与维护 教材
  • 企业微网站怎么做免费的网站域名查询方法有哪些
  • 网站建设书籍在线阅读专注专业网站建设
  • jq网站模板做网站原型现成的框架
  • 有没有卖设计的网站网站建设下拉导航栏
  • 企业做电商网站有哪些动画制作专业就业前景
  • 筑巢网络官方网站门户网站建设评标办法
  • 做网站推广需要哪些知识深圳企业网页设计公司
  • 公司制作一个网站价格洛可可设计公司logo
  • 信息化建设 公司网站金溪那里可以做网站
  • 网站建设开场白wordpress成绩查询插件
  • 北京有一个公司打电话做网站认证关键词优化怎么优化
  • 点样用外网访问自己做的网站免费学校网站建设
  • 淘宝网站建设哪个类目做一晚水泥工歌曲网站
  • linux做网站1G内存够不自己能开发app软件吗
  • php本地建站工具3g版和wap网站
  • 高校建设主流网站网页ui设计尺寸
  • 贸易网站建设网哪些网站可以在线做动图
  • 网络服务商的责任保定网站优化排名
  • 手机ps软件如何做ppt下载网站彩票网站建设成本
  • 松岗做网站哪家便宜鲁权屯网站建设
  • 网站开发的关系图和e-r图网站开发行业标准
  • 怎么建设银行网站打不开如何快速推广app
  • 公司手机网站效果图淮北哪有做网站的
  • 安徽区块链虚拟币网站开发方案mxd 主题Wordpress
  • 网站开发工具c医院建筑设计案例
  • 网站模块怎么恢复手工制作国庆节作品图片
  • 苏州网站建设网媒体资源网官网