vue中的传值及赋值问题
作者:yikewang2016 发布时间:2024-05-28 15:45:32
vue的传值及赋值
作为Vue非资深的学习者,在工作中使用vue的时候还是遇见的很多所谓的坑,打算总结一下;就在昨天PM找到我,给我看了一个bug,很是头疼的是,我看了半天代码就是看不出有什么问题,但是实现起来就是报错。
先看一下场景
这是详情页的tab栏,这里的大概逻辑就是从别的页面跳转到详情页并且需要选中虚拟服务器组这个tab栏,代码的逻辑是先获取详情页信息Detail,然后把detail这个对象以props的形式传递给虚拟服务器组这个子组件
export default {
props:['detail'],
data(){
return {
type: this.detail.type
}
},
methods: {
XXX(){
}
}
}
我在这里多做了一步,就是讲props里面的属性赋值给了data里面的变量,但是如果我跳转到详情页后立即转到虚拟服务这个tab栏的时候,(此时会立即触发XXX方法,并且会使用type这个变量),此时回报错,就是type是未定义的?
解决方法
直接将props中的detail变量直接拿来使用,不需要赋值给data中的变量,就不会出现这种情况。
深层的原因不清楚,但是初步断定是时间差的问题,在测试的时候发现,这种bug不是必然复现的,时好时坏,直接使用的话避免了这个问题。
vue的赋值小技巧
严谨代码
严谨性即健壮性,是指软件对于规范要求以外的输入情况的处理能力。所谓的系统是指对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。
另外健壮性有时也和容错性,可移植性,正确性有交叉的地方。
比如,一个软件可以从错误的输入推断出正确合理的输入,这属于容错性量度标准,但是也可以认为这个软件是健壮的。
undefined判断
JS 和 Vue中有两个特殊数据类型:undefined 和 null,下节介绍了 null 的判断,下面谈谈 undefined 的判断。
以下是不正确的用法:
var exp = undefined;
if (exp == undefined)
{
alert(“undefined”);
}
exp 为 null 时,也会得到与 undefined 相同的结果,虽然 null 和 undefined 不一样。注意:要同时判断 undefined 和 null 时可使用本法。
var exp = undefined;
if (typeof(exp) == undefined)
{
alert(“undefined”);
}
以下是正确的用法:
var exp = undefined;
if (typeof(exp) == “undefined”)
{
alert(“undefined”);
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持asp之家。
来源:https://blog.csdn.net/yikewang2016/article/details/81772338


猜你喜欢
- 使用conda安装requirement.txt的扩展包当你在GitHub上下载了代码时,可以看到有一个requirements.txt文件
- 1、Librosaimport librosa filepath = "/Users/birenjianmo/Desktop/le
- 一、概述OLAP的系统(即Online Aanalyse Process)一般用于系统决策使用。通常和数据仓库、数据分析、数据挖掘等概念联系
- 相信用过Gmail的人都知道Gmail有一个草稿自动保存的功能,每过一段时间,Gmail都会自动保存邮件草稿,这样在一些突 * 况下就能快速地
- 第一步:升级pythonCentOs 6.x的系统默认安装的Python版本是2.6.x,想升级到Python2.7.x,从官方下载源文件,
- 介绍 append()语法list.append( element )参数element:任何类型的元素列表「末尾」添加元素nam
- 因为概率问题,所以需要测试一下python的随机数分布。到底是平均(均匀)分布,还是正态(高斯)分布。测试代码如下:#! /usr/bin/
- 今天用numpy 的linalg.det()求矩阵的逆的过程中出现了一个错误:TypeError: No loop matching the
- 相信大家在日常的开发中经常会碰到榜单类的活动需求,通常在榜单中都会要求返回排名,今天我们就用MySQL的窗口函数来快速实现一下首先,先建一个
- vue项目运行或打包,频繁内存溢出Vue项目运行或打包时,频繁内存溢出情况CALL_AND_RETRY_LAST Allocation fa
- 操作所涉及的文件都在当前用户下面的隐藏文件:1. 打开Anaconda Prompt(如果之前生成过Config配置文件则不需要第一步)终端
- vue组件通信的方式,这是在面试中一个非常高频的问题,我刚开始找实习便经常遇到这个问题,当时只知道回到props和 $emit,后来随着学习
- 时间戳的问题我们的微博应用的一个忽略了很久的问题就是日间和日期的显示。直到现在,我们在我们的User和Post对象中使用Pyth
- 如果使用默认的数据库 SQLite3,则无需配置settings.py使用其他数据库,则需要配置settings.py,这里以Mysql为例
- 一、创建一个项目如果这是你第一次使用Django,那么你必须进行一些初始设置。也就是通过自动生成代码来建立一个Django项目--一个Dja
- MHA介绍MHA是一位日本MySQL大牛用Perl写的一套MySQL故障切换方案,来保证数据库系统的高可用.在宕机的时间内(通常10—30秒
- 今天我们实现疲劳检测。 如果眼睛已经闭上了一段时间,我们会认为他们开始打瞌睡并发出警报来唤醒他们并引起他们的注意。我们测试一段视频来展示效果
- 一、简介urllib.request.urlopen()函数用于实现对目标url的访问。函数原型如下:urllib.request.urlo
- mysql存储引擎概述什么是存储引擎?MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制
- 众所周知,数据库中INSERT INTO语法是append方式的插入,而最近在处理一些客户数据导入场景时,经常遇到需要覆盖式导入的情况常见的