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

公司建设网站的报告书上海猎头公司电话

公司建设网站的报告书,上海猎头公司电话,公司简介模板100字范文,北京已感染上千万人组件间传值的两个坑 我们都知道父组件可以把值传递到自组件中,但是有时候子组件需要修改这个父组件传递过来的这个值,我们可以想象下能修改成功吗?这是坑之一。我们在组件间传值的时候,都是一个属性名对应一个值,接收…

组件间传值的两个坑

我们都知道父组件可以把值传递到自组件中,但是有时候子组件需要修改这个父组件传递过来的这个值,我们可以想象下能修改成功吗?这是坑之一。我们在组件间传值的时候,都是一个属性名对应一个值,接收的时候也是用这个属性名接收,那么每一个用户自定义的属性名都能被接收到吗?这是坑之二,本文就让我们一起来看下这两个坑吧。

实例填坑

坑一

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"><script src="https://unpkg.com/vue@next"></script><title>组件间传值</title>
</head>
<body><div id="root"></div>
</body>
<script>const app = Vue.createApp({data() {return {num:0}},template: `<div><counter :count = "num"/></div>` });// 定义一个test组件app.component('counter',{props: ['count'],template: `<div @click="count+=1">{{count}}</div>`});const vm = app.mount('#root');
</script>
</html>

在上面的代码中,我们定义了一个counter组件接收父组件的一个count值,当点击这个显示的值时,我们做加一操作。这时候我们运行代码会发现,我们的值并不会完成加一操作,而是会报父组件传递过来的值是只读的:

在这里插入图片描述

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"><script src="https://unpkg.com/vue@next"></script><title>组件间传值</title>
</head>
<body><div id="root"></div>
</body>
<script>const app = Vue.createApp({data() {return {num:0}},template: `<div><counter :count = "num"/></div>` });// 定义一个test组件app.component('counter',{props: ['count'],data(){return{mCount:this.count}},template: `<div @click="mCount+=1">{{mCount}}</div>`});const vm = app.mount('#root');
</script>
</html>

这时候我们再运行代码就会发现我们可以做加一操作了:
在这里插入图片描述

坑2:

1.发现天坑

当我们定义一个单词名称比较长的属性,并且用“-”分隔符连接的时候,子组件无法接收到正确的值,显示NaN。代码如下:

<!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"><script src="https://unpkg.com/vue@next"></script><title>组件间传值</title>
</head>
<body><div id="root"></div>
</body>
<script>const app = Vue.createApp({data() {return {content:"hello world"}},template: `<div><test :content-helloworld = "content"/></div>` });// 定义一个test组件app.component('test',{props: ['content-helloworld'],template: `<div>{{content-helloworld}}</div>`});const vm = app.mount('#root');
</script>
</html>

在上面的代码中,我们使用content-helloworld这个属性在父组件和子组件之间传值,按照我们的理解,应该是能传递成功的,但是显示的结果却不正确

在这里插入图片描述上面到坑也是VUE中的单向数据流的概念,即子组件可以使用父组件传递过来的数据,但是不能修改父组件传递过来的数据

2.填坑时刻

当我们定义的属性值中有用“-”分隔符分隔时,我们在接收值的时候,需要将属性名改成驼峰命名的方式,如上面的例子中父组件使用content-helloworld传递值到子组件,那么子组件接收到时候应该将其改成驼峰命名方式:使用contentHelloworld接收

<!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"><script src="https://unpkg.com/vue@next"></script><title>组件间传值</title>
</head>
<body><div id="root"></div>
</body>
<script>const app = Vue.createApp({data() {return {content:"hello world"}},template: `<div><test :content-helloworld = "content"/></div>` });// 定义一个test组件app.component('test',{props: ['contentHelloworld'],template: `<div>{{contentHelloworld}}</div>`});const vm = app.mount('#root');
</script>
</html>

这样值就能正确显示了
在这里插入图片描述

总结

本文主要是讲解了组件传值过程中的两个容易犯的小错误,一是父组件传递过来的值不能修改,二是父组件使用“-”分隔符定义属性传递值到子组件,子组件接收时需要将属性名改为驼峰命名方式

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

相关文章:

  • 徐州网站建设求职简历wordpress 站群会员
  • 开发公司移交物业资料iis 网站 优化
  • 好的网站怎么设计登陆网站显示域名解析错误怎么办
  • 网页设计公司网站设计广州安全教育平台账号登录入口
  • 百度推广方案怎么写政务网站优化
  • 网站建设 amp 金手指排名效果好旅游开发 网站建设
  • flash网站好做seo不上海市建设工程 安全质量网站
  • 防蜘蛛抓取网站代码160加工网
  • 怎么做企业网站图片 套网站模板下载 迅雷下载 迅雷下载地址
  • 网站建设 推广就选网沃科技怎样学做网站
  • 企业网站建设word深圳家装公司十大排名
  • 建设酒类产品网站的好处wordpress 后台底部修改
  • 方法数码做的网站怎么样国家职业建设中心网站
  • 免费制作二维码的网站湖北田源建设工程有限公司网站
  • ps手机网站制作代驾app软件开发公司
  • 论坛网站怎么做最新的新闻内容
  • 海外网站seo三亚网站设计公司
  • 梅县区住房和城乡规划建设局网站揭阳模板网站建站
  • 一诺千金 网站建设手机怎么做网站教程
  • 广西公司做网站国内最新新闻事件
  • 哪个云服务器便宜又好佛山seo优化电话
  • 南昌做网站优化网页前端模板网站
  • wordpress精美网站html怎么设置网站吗
  • 西安网站建设和推广公司做网站建设公司起名
  • 清河做网站广东省住房和城乡建设厅网站
  • 做设计一般在那个网站找图网站logo如何修改
  • 怎么做徐州市环保局网站备案表自然志 wordpress主题
  • 毕业设计做网站 服务器怎么弄用软件什么做网站
  • 青海网站建设系统湖南企业竞价优化首选
  • 漆包线 东莞网站建设网站建设哪家好就推 鹏博资讯