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

网站建设备案需要法人身份证吗专业网络推广公司

网站建设备案需要法人身份证吗,专业网络推广公司,方圆网站建设,秦皇岛黄金海岸游玩攻略目录 1.基础用法 2.使用解构赋值的方式定义props 3.使用toRefs的方式解构props (1).通过ref响应式变量&#xff0c;修改对象本身不会触发响应式 1.基础用法 父组件通过在子组件上绑定子组件中定义的props&#xff08;:props“”&#xff09;传递数据给子组件 <!-- 父组件…

目录

1.基础用法

2.使用解构赋值的方式定义props

3.使用toRefs的方式解构props

(1).通过ref响应式变量,修改对象本身不会触发响应式


1.基础用法

父组件通过在子组件上绑定子组件中定义的props(:props=“”)传递数据给子组件

<!-- 父组件 -->
<template><div><ChildComponent :message="parentMessage" /></div>
</template><script setup>
import { ref } from 'vue';//导入子组件
import ChildComponent from './ChildComponent.vue';const parentMessage = ref('Hello from Parent');
</script>

在子组件中通过 defineprops 函数在子组件中定义props,在父组件上导入的子组件上绑定子组件定义的 props 就可以接收这些数据,然后可在 template (模板)中直接使用

<!-- 子组件 -->
<template><div><p>{{ message }}</p></div>
</template><script setup>//直接定义一个props(即message)
defineProps({message: {type: String,required: true}
});</script>

但是,如果想要在JS代码中使用父组件传递的props数据时,必须要定义一个变量(一般我们使用props作为变量名)来接收defineprops函数的返回值才能使用

<!-- 子组件 -->
<template><div><p>{{ message }}</p></div>
</template><script setup>//定义props变量接收defineProps返回值
const props = defineProps({message: {type: String,required: true}
});//在JS中使用message的值
console.log(props.message)</script>

如果不定义一个变量接受,直接获取父组件传过来的数据message是undefinded

2.使用解构赋值的方式定义props

有时候为了方便使用父组件通过props传递过来的值,子组件一般会直接解构拿到父组件传来的值(这里使用message1和message2进行展示)

<!-- 子组件 -->
<template><div><p>{{ message1 }}</p></div>
</template><script setup>//解构赋值props
const {message1,message2} = defineProps({message1: {type: String,required: true},message2: {type: String,required: true}
});//在JS中直接使用message1,message2的值
console.log(props.message1,props.message2)</script>

 这样做可以直接使用message1和message2,无需props.message1和props.message2

3.使用toRefs的方式解构props

toRefs可以让一个reactive对象的属性都变为ref对象。
在vue3早期版本时,解构props会造成数据会失去响应式,所以解构时,需要用torefs包裹,因为props本质上时reactive对象,torefs可以把reactive的每个属性变成ref对象,这样解构出来依旧是响应式。
注意:在Vue3的组合式API中, defineProps是一个内置的全局函数,不需要显式引入,而toRefs的使用需要引入。

<!-- 子组件 -->
<template><div><p>{{ message1 }}</p></div>
</template><script setup>
import {toRefs } from 'vue';const props = defineProps({message1: {type: String,required: true},message2: {type: String,required: true}
});//使用toRefs解构props
const {message1,message2} = toRefs(props);console.log(message1,message2);
</script>

 注意:torefs不能直接包裹 defineprops函数 ,会报错defineprops未定义

(1).通过ref响应式变量,修改对象本身不会触发响应式

还有一个因为响应式原理引发的有趣现象,首先我们定义一个obj对象,然后定义另一个obj1 ref对象包裹obj,例如:

<template>{{ obj1 }}<button@click="() => {obj.a = 3;console.log(obj, obj1);}">点击按钮</button>
</template>
<script setup>
import { ref } from "vue";
const obj = { a: 1, b: 2 };
const obj1 = ref(obj);
</script>
<style></style>


此时通过obj更改对象内属性a ,可以看到无论是obj还是obj1都被成功更改,但dom没有响应式更新。

原因就是通过obj更改,并没有调用obj1的set方法,所以没有触发该实例的渲染函数,普通类型的数据也是一样,只要不是通过ref对象本身更改,都不会调用set方法,就不会调用组件实例渲染函数,也就不会响应式(可以去查看响应式的原理)。

所以一般这种情况,需要其他变量定义响应式变量时,可以通过computed函数,即可响应式(ref包裹对象时,本质还是通过reactive包裹,所以一样会深度监听,所以没有响应式的原因就是没有调用set方法,跟ref能否深度监听无关)

torefs包裹reactive对象会使其每个属性值变成ref对象,单独具有响应式,所以结构出来不会失去响应式,但此ref对象和普通的ref对象不同,有两个普通ref对象没有的key属性和object属性,其中key属性是解构出来的属性的属性名,object是原reactive对象,当我们获取value值时,ref的get属性并不会直接返回value,而是通过key值向object属性值,也就是原reactive对象上获取,同样的,set方法也是更改原reactive对象,所以即使解构出来,单独使用,也会和原对象的值保持一致

http://www.dtcms.com/wzjs/156407.html

相关文章:

  • 深圳工程建设交易服务中心网站seo运营做什么
  • 怎么投诉做网站的公司怎么找到当地的微信推广
  • asp程序设计做网站以下属于网站seo的内容是
  • 东莞虎门做网站电子商务网站建设与维护
  • 建设网站利用点击量赚钱建立一个企业网站需要多少钱
  • 做实体识别的网站广告营销案例分析
  • 园林景观网站模板优化网站软文
  • 重庆网站建设兼职青岛网站制作设计
  • java做网站访问量并发做百度推广效果怎么样
  • 做调查问卷用的网站或软件app开发自学
  • 园艺wordpress模板seo 推广教程
  • 网站运维公司石家庄seo顾问
  • 武汉政府网站设计公司排名软文推广什么意思
  • 免费做网站的餐饮管理和营销方案
  • 网络公司发生网站建设费分录seo关键词优化排名哪家好
  • 河南专业网站建设公司首选爱站官网
  • 有个网站专做品牌 而且价格便宜专业优化网站排名
  • 南联企业网站建设优化大师官网下载
  • 松岗做网站费用宁夏百度公司
  • 做企业网站服务商做网络推广需要多少钱
  • 自己做网站生意怎么样上海知名seo公司
  • 甘肃省城乡城乡建设厅网站大连企业网站建站模板
  • 有没有代做ppt的网站最新热搜榜
  • 甘肃公司网站建设哪家好自动优化句子的软件
  • 常德网站建设求职简历淘宝搜索关键词技巧
  • 个人网站免费域名获取自动化测试培训机构哪个好
  • 建站模板与网站案例展示网络营销策略是什么
  • 不会代码可以做网站吗seo网站编辑优化招聘
  • 一个企业网站的建设流程seo的基本步骤顺序正确的是
  • 网站建设规划方案书游戏推广员拉人技巧