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

家庭宽带做网站稳定西安制作网站的公司有

家庭宽带做网站稳定,西安制作网站的公司有,wordpress主题英文改中文版,贵州建设厅网站官网目录 一、provide和inject基本介绍。 二、跨层级传递与接收数据案例实操。 (1)跨层级传递普通数据。 (2)跨层级传递响应式数据。 (3)跨层级传递函数。(方便子孙组件修改传递的响应式变量) 一、provide和inj…

目录

一、provide和inject基本介绍。

二、跨层级传递与接收数据案例实操。

(1)跨层级传递普通数据。

(2)跨层级传递响应式数据。

(3)跨层级传递函数。(方便子孙组件修改传递的响应式变量)


一、provide和inject基本介绍。

  • 目的避免 props 层层传递,实现祖先组件可向任意层级后代组件共享数据
  • 通常情况下的父子通信下:父组件向子组件传递数据,子组件内部通过props选项(setup中使用defineProps:“编译器宏”)接收。


  • 关键特性
  1. 祖先层级的响应式数据变更会自动同步到被注入方(被注入的层级)。
  2. 数据默认只读,修改需通过提供者暴露方法。也就是由注入方提供,被注入方调用提供的方法进行修改操作(保持单向数据流)。

  • 核心逻辑。(跨层级传递数据基本步骤)
  1. 祖先组件用provide“提供”数据(响应式或非响应式)数据可被其所有后代组件访问
  2. 后代组件用inject“注入”数据。无需通过中间组件传递

二、跨层级传递与接收数据案例实操。

(1)跨层级传递普通数据。
  • 顶层组件通过provide函数提供数据。

  • 底层组件通过inject函数获取数据。


  • 首先搭建基本的层级组件(父->子->孙)。


  • 顶层组件代码示例。
<script setup>
//导入中间层组件
import Center from "./components/Center.vue";
import {provide} from "vue";//1.跨层级传递普通数据
//2.顶层组件使用provide函数传递数据
provide('theme_color','pink')
</script><template><div><h1>我是顶层组件App.vue</h1><Center></Center></div>
</template><style scoped></style>
  • 中间层组件代码示例。
<script setup>
//导入底层组件
import Bottom from "./Bottom.vue";
</script><template><div><h2>我是中间层组件Center.vue</h2><Bottom></Bottom></div>
</template><style scoped>
</style>
  • 底层组件代码示例。
<script setup>
import {inject} from "vue";//2.底层组件通过inject函数接收数据
const themeColor = inject('theme_color')
</script><template><div><h3>我是底层组件Bottom.vue</h3>----顶层组件传递的数据:{{themeColor}}</div>
</template><style scoped></style>


  • 页面渲染效果。

(2)跨层级传递响应式数据。
  • 顶层组件通过provide函数并在第二个参数设置ref对象(响应式数据)。

  • 底层组件通过inject函数获取数据。


  • 顶层组件代码示例。
<script setup>
//导入中间层组件
import Center from "./components/Center.vue";
import {provide, ref} from "vue";const count = ref(100)//1.跨层级传递响应式数据
//2.顶层组件使用provide函数传递数据
provide('count',count)//设置一个定时器,2秒后修改响应式count的值
setTimeout(()=>{count.value = 500
},2000)
</script><template><div><h1>我是顶层组件App.vue</h1><Center></Center></div>
</template><style scoped></style>
  • 中间层组件代码示例。
<script setup>
//导入底层组件
import Bottom from "./Bottom.vue";
</script><template><div><h2>我是中间层组件Center.vue</h2><Bottom></Bottom></div>
</template><style scoped></style>
  • 底层组件代码示例。
<script setup>
import {inject} from "vue";//2.底层组件通过inject函数接收数据
const count = inject('count')
</script><template><div><h3>我是底层组件Bottom.vue</h3>----顶层组件传递的数据:{{count}}</div>
</template><style scoped></style>

  • 初始页面渲染效果。

  • 设定的2s后页面渲染效果。


  • 底层组件中不能随意修改顶层组件传递的响应式变量值。默认是只读状态的
  • 通常原则是:谁的数据谁维护!这时可以使用跨层级传递函数。给子孙组件提供修改响应式变量的函数即可完成修改操作!

(3)跨层级传递函数。(方便子孙组件修改传递的响应式变量)
  • 顶层组件可以向底层组件传递方法。底层组件调用方法修改顶层组件中的数据!



  • 顶层组件代码示例。
<script setup>
//导入中间层组件
import Center from "./components/Center.vue";
import {provide, ref} from "vue";const count = ref(100)//1.跨层级传递响应式数据
//2.顶层组件使用provide函数传递数据
provide('count',count)//3.跨层级传递函数=>给子孙组件传递可以修改响应式数据的函数
//但是控制权还是在顶层组件(可以按条件接收,也可以return等等操作)
provide('changeCount',(newCount)=>{console.log('底层组件使用函数,并传递想修改的值:', newCount)count.value = newCount
})
</script><template><div><h1>我是顶层组件App.vue</h1><Center></Center></div>
</template><style scoped></style>
  • 中间层组件代码示例。
<script setup>
//导入底层组件
import Bottom from "./Bottom.vue";
</script><template><div><h2>我是中间层组件Center.vue</h2><Bottom></Bottom></div>
</template><style scoped></style>
  • 底层组件代码示例。
<script setup>
import {inject} from "vue";//2.底层组件通过inject函数接收数据
const count = inject('count')const changeCountObj = inject('changeCount')const changeCount = () => {changeCountObj(2000)
}
</script><template><div><h3>我是底层组件Bottom.vue</h3>----顶层组件传递的数据:{{count}}<button @click="changeCount">修改count</button></div>
</template><style scoped></style>
  • 初始页面渲染效果。


  • 点击修改count按钮后,页面渲染效果。


文章转载自:

http://w4GHvnvK.hnrLs.cn
http://Qr9VSjIL.hnrLs.cn
http://XSBEzGYg.hnrLs.cn
http://o0pZWs8N.hnrLs.cn
http://FfgYR7WK.hnrLs.cn
http://zeyQzkFp.hnrLs.cn
http://Mp3Jz6qr.hnrLs.cn
http://X3urcx9f.hnrLs.cn
http://I5zZQXG3.hnrLs.cn
http://pqgYDnlY.hnrLs.cn
http://mkuwGtWA.hnrLs.cn
http://4py84fcf.hnrLs.cn
http://Etr2cKR5.hnrLs.cn
http://WfENYEIH.hnrLs.cn
http://0TQS7Ivt.hnrLs.cn
http://DtfIDxL9.hnrLs.cn
http://K6UZ9ECN.hnrLs.cn
http://dXmQ8MmD.hnrLs.cn
http://6xN75VE9.hnrLs.cn
http://W2uVAq17.hnrLs.cn
http://UEjngQ6H.hnrLs.cn
http://s19gxpvQ.hnrLs.cn
http://cKY3G5UG.hnrLs.cn
http://Ly8eqTao.hnrLs.cn
http://8jOofMWx.hnrLs.cn
http://GMcPXIUJ.hnrLs.cn
http://iGZh6e49.hnrLs.cn
http://I5Kazyhz.hnrLs.cn
http://Z7mf8nzl.hnrLs.cn
http://rooT2Dyu.hnrLs.cn
http://www.dtcms.com/wzjs/659913.html

相关文章:

  • 淘客的手机网站微信支付开发文档
  • 北京网站托管维护什么招聘网最好找工作
  • 如何开发电商网站域名备案与网站备案的区别
  • 中小企业网站制作平台google免费vps
  • 怎么样推广网站在家怎么提升学历
  • 衡阳市网站建设公司永州网站制作
  • 建设 互动 网站 模式北京平台网站建设多少钱
  • 克隆网站首页做单页站几个文件智能硬件开发
  • 十二冶金建设集团有限公司网站wordpress后台禁止更新
  • 做的不错的h5高端网站怎么上传网站地图
  • 现在那个网站做宣传有效果网站建设怎么下载代码
  • 怎样进行网站建设广州网站推广策划
  • 镇江企业网站设计开发价格外贸线上推广
  • 网站建设管理规定成功的网络营销事件有哪些
  • 汕头网站推广自己创造网站平台
  • 2014做社交网站注册公司资金最少多少钱
  • 电子商务html网站模板网站开发怎样
  • 做黑网站wordpress注册界面修改
  • 农村电子商务网站建设方案金安合肥网站建设专业
  • wordpress 网站登录公众号制作编辑器
  • 济南wordpress 建站微信运营者和管理员的区别
  • 扒站wordpress主题wordpress 关注插件
  • 游戏网站设计太原网站搜索优化
  • 设计师接私单网站使用免费的代码做网站
  • 标准网站建设服务器网站建设合理化建议方案
  • 什么网站建设最便宜网站按钮特效
  • 网站升级维护期间能访问吗qq网页版直接登录手机版
  • 商城网站建设软件新郑做网站优化
  • 天津做网站找津坤科技专业电子商务网站建设实训感想
  • 广东省城乡建设厅网站省级建设主管部门网站