void mutating a prop directly since the value will be overwritten when...
void mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated:
单向数据流
所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。
vue官网截图
vue报错常见场景,以下动态tab切换,子组件分页需要改变初始传参的正确写法
在父组件引入子组件
<div class="m-tab">
<div class="m-navbar">
<a v-for="item in tablist" class="m-items" :class="{ mactive : activetab == item.idx }" @click="tabs(item.idx)" :key="item.idx">
{{ item.title }}
<i class="m-sign"></i>
</a>
</div>
<div v-for="item in tablist" class="m-sub" v-show="activetab == item.idx">
<insuresub :post="item"></insuresub>
</div>
</div>
import navbar from '@/components/navbar'
import insuresub from '@/components/insuresub'
export default {
name: "insure",
components: {
navbar,
insuresub,
},
data() {
return {
activetab: 'c1',
tablist: [{
idx: 'c1',
title: '医疗险',
page: '2',
count: '12',
sub:[{
price: '100'
},{
price: '80'
}]
},{
idx: 'c2',
title: '重疾险',
page: '5',
count: '8',
sub:[{
price: '70'
},{
price: '90'
}]
},{
idx: 'c3',
title: '寿险',
page: '3',
count: '11',
sub:[{
price: '200'
},{
price: '800'
}]
}],
}
},
methods: {
tabs (e){
this.activetab = e;
}
}
}
下面是子组件接收传参动态改变,子组件 next() 需要动态请求数据达到分页效果,我这里写的静态数据方便理解
{{ post.idx }}-{{ post.page }}页/{{ post.count }}页
<a v-for="item in list.sub" class="card" @click="next(list.page)">
<div class="cardhead">
<div class="cardbox">
<div class="color-m size-a">1623人正在保障中...</div>
<div class="cardname">产品计划</div>
<div class="color-c size-a">可多次赔付 | 340种疾病 | 保障全面</div>
<span class="color-l">¥<span class="size-e">{{ item.price }}</span></span>起
</div>
<img class="cardimg" src="../assets/images/index4.jpg" alt="图片加载失败" />
</div>
<div class="cardbody">
<div>
<div class="size-c">200万</div>
<span class="color-c size-a">保额</span>
</div>
<div>
<div class="size-c">1周岁-60周岁</div>
<span class="color-c size-a">投保年龄</span>
</div>
<div>
<div class="size-c">1年</div>
<span class="color-c size-a">投保期限</span>
</div>
</div>
</a>
export default {
name: "insuresub",
data(){
return {
list:this.post
}
},
props:['post'],
methods: {
next: function(e){
console.log(e)
this.list = {
idx: 'c1',
title: '医疗险',
page: '2',
count: '12',
sub:[{
price: '198'
},{
price: '280'
}]
}
}
}
}
下图看效果

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Clean Code之JavaScript代码示例
译者按: 简洁的代码可以避免写出过多的BUG。 原文: JavaScript Clean Code - Best Practices 译者: Fundebug 本文采用意译,版权归原作者所有 引文 作为一个开发者,如果你关心代码质量,除了需要认真测试代码能否正确执行以外,还要注重代码的整洁(clean code)。一个专业的开发者会从将来自己或则他人方便维护的角度考虑如何写代码,而不仅仅是机器能够读懂。你写的任何代码有很大几率会被再次重构,希望未来重构代码的那个人不会觉得这是一场灾难。 代码的简洁之道可以被理解为:代码自我解释(且注释少),开发者友好(易于理解,修改和扩展)。 想想之前阅读别人的代码的时候,说过多少次下面的话? "WTF is that?" "WTF did you do here?" "WTF is this for?" 下面这张图很形象地描述了这个情况: 《Clean Code》的作者Robert C. Martin (Uncle Bob) 说过这样的话. 虽然烂代码可以运行,但是它不够整洁,它会把整个开发团队给整跪了 本文主要讲 JavaScript 代码的整洁之...
-
下一篇
1、web爬虫,requests请求
【转载自:https://www.jianshu.com/u/3fe4aab60ac4】requests请求,就是用python的requests模块模拟浏览器请求,返回html源码 模拟浏览器请求有两种,一种是不需要用户登录或者验证的请求,一种是需要用户登录或者验证的请求 一、不需要用户登录或者验证的请求 这种比较简单,直接利用requests模块发一个请求即可拿到html源码 #!/usr/bin/envpython #-*-coding:utf8-*- importrequests#导入模拟浏览器请求模块 http=requests.get(url="http://www.iqiyi.com/")#发送http请求 http.encoding="utf-8"#http请求编码 neir=http.text#获取http字符串代码 print(neir) 得到html源码 <!DOCTYPEhtml> <html> <head> <title>抽屉新热榜-聚合每日热门、搞笑、有趣资讯</title> <metacha...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL数据库在高并发下的优化方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果