Vue之父子组件同步数据
通过父组件传递prop给子组件,子组件没有刷新,可能是以下几种问题导致
父组件给子组件绑定的值,可能在组件渲染的时候没有获取到,导致后面父组件有数据更新,子组件也获取不到
父组件传给子组件的时候,子组件通过data函数去接收,此时父组件更新数据时,子组件仍然获取的是第一次传过来的值
解决以上两个问题,首先要确认父组件的prop值是否存在,并且在子组件添加watch属性,及时更新同步data和prop的值
// 父组件<template> <test :datas="control"></test></template>
<template> <div> child: {{isA}} </div></template> data() { return { isA: this.datas } }, watch: { datas: ...
problem
vue重载组件
应用场景: 异步加载数据,数据更新不及时(例如删除地图,应用地图)会展示错误的数据,和绑定key并无关系,可能是展示的数据太大.解决办法:有三种重载组件的方法:1.使用v-if和$nextTick()组合对整个页面的DOM重新加载; 2.使用this.$router.go(0)重新刷新这个页面,但是会造成数据丢失,不推荐使用; 3.给子组件绑定一个key的值为时间戳,每次渲染的时候会去拿这个key 值做对比,如果这一次的key 值和上一次的key值是不一样的才会重新渲染dom元素,会重新执行子组件的周期函数.
map()方法需要return一个值,否则会返回一个undefined
Object.assign(target, source)可枚举属性的值从一个或多个源对象分配到目标对象。它将返回目标对象。
如果目标对象中的属性具有相同的键,则属性将被源对象中的属性覆盖。后面的源对象的属性将类似地覆盖前面的源对象的属性。
vue操作dom需要把对应属性绑定在data上
父子组件执行顺序:父组件(create)->子组件(create,mount) ...
project_excise
扫地机器人项目
canvas使用
数据传输
电商小程序
优化点:
商品详情页可添加加载动画
配置全局选项包括,字体,主题色,导航栏胶囊高度,自适应设备
TB电商后台
element_problem
el-dialog组件使用v-if和:visible可以刷新组件,但是对于同一组件默认属性相同的数据不能达到效果,数据会在组件渲染后传入
default-values="device.type == 'department' ? device.deptData : device.identityData"
使用:key=”new Date()” 会及时刷新组件,但是会产生闪烁
解决方案: 给dialog的子组件绑定key属性,只局部刷新内部组件,不刷新dialog组件就不会因为backgroud刷新引起闪烁
excise
首字母大写
String.prototype.firstUpper = function(){ return this.toLowerCase().replace(/^\S/, l => l.toUpperCase() )}
数组排序
var ar = [2,4,1,7,4,3]//升序ar.sort((a,b)=>{ return a - b})//降序ar.sort((a,b)=>{ return b - a})
数组去重大致分为两种
//Set不会出现重复的值var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];function unique( ...
interview-Vue
VUE生命周期 父子组件嵌套顺序 两种路由优劣
vuex作用是什么,为什么不用全局变量 用于DOM的渲染,重载DOM
vue和react区别
数据传递 React一直不支持双向绑定,提倡的是单向数据流,称之为onChange/setState()模式。不过由于我们一般都会用Vuex以及Redux等单向数据流的状态管理框架,因此很多时候我们感受不到这一点的区别了。
通信方式 Vue中有三种方式可以实现组件通信:父组件通过props向子组件传递数据或者回调,虽然可以传递回调,但是我们一般只传数据;子组件通过事件向父组件发送消息;通过V2.2.0中新增的provide/inject来实现父组件向子组件注入数据,可以跨越多个层级。 React中也有对应的三种方式:父组件通过props可以向子组件传递数据或者回调;可以通过 context 进行跨层级的通信,这其实和 provide/inject 起到的作用差不多。React 本身并不支持自定义事件,而Vue中子组件向父组件传递消息有两种方式:事件和回调函数,但Vue更倾向于使用事件。在React中我们都是使 ...
interview
js对象的对象原型
function spacify(str){ return str.split('').join(' ')}String.prototype.spacify = function(){ return this.split('').join(' ')}'hello'.spacify() //'h e l l o' 在字符串对象上添加一个spacify的方法
Javascript中函数声明和函数表达式是存在区别的,函数声明在JS解析时进行函数提升,因此在同一个作用域内,不管函数声明在哪里定义,该函数都可以进行调用。而函数表达式的值是在JS运行时确定,并且在表达式赋值完成后,该函数才能调用
JS中var定义的全局变量与window对象上定义的属性的区别
var定义的全局变量,对象,函数都是window对象的成员
var name = 'yy'var action ...
basic_js
Javascript基础语法数组 Array
属性length: 返回数组的长度
[1,2,3,4,5].length // 5
方法 filter(): 过滤满足条件的数组的每一项内容
const arr = [1,2,3,6,7,11,11,42,63]let res = arr.filter( function (item){ return item > 10})console.log(res) // 11,11,42,63
indexOf():可返回被指定的值在字符串中首次出现的位置
var str = 'babdjacdab'console.log(str.indexOf('b')) //0
splice():用于添加或删除数组中元素,返回操作完的原数组
var arr = ['hello', 'world', 'green']console.log(arr.splice(2,1)) //['green']var ...
centos安装jdk
Centos7.x系统安装JAVA环境
下载jdk文件
此次下载的是jdk8版本,官网地址Java SE Development Kit 8 Downloads,最近官网改版后,需要Oracle账户才能登录下载,推荐使用国内镜像华为开源镜像站-jdk8
mkcd /usr/local/src/java //新建并进入目录wget https://mirrors.huaweicloud.com/java/jdk/8u152-b16/jdk-8u152-linux-i586.tar.gz //下载文件tar -xzf jdk-8u152-linux-x64.tar.gz -C /usr/local/java //移动并重命名cd /java/bin./java -version //java version "1.8.0_xxxx",说明安装成功
配置java环境
配置jdk全局环境变量
vi /etc/profile//在末尾添加export JAVA_HOME=/usr/local/javaexport PATH=${JAVA_HOME} ...
centos安装mysql57
查看当前安装得mysql(没有安装请跳过)
rpm -qa | grep -i mysql#移除mysql依赖yum remove -y packageName# 删除mysql得文件find / -name mysqlrm -rf ./mysql_name
mysql5.7安装
# 下载wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm# 安装mysql 源yum localinstall mysql57-community-release-el7-11.noarch.rpm# 查看源rpm -qa | grep -i mysql# 移除源rpm -e 文件名 --nodeps# 查看安装成功否yum repolist enabled | grep "mysql.*-community.*"#安装mysqlyum install -y mysql-community-server# 查看mysql状态systemctl status mysql# 设置开 ...