vue实例相关
第一种方法要比第二种更省事
if (!row.alert_at) return;
if(row.alert_at){
} else {
}
v-for="todo in list" // 任务 在 列表 (列表中的任务)
window自带的方法,里边的this向最外层的window
比如:
forEach(funtion(row, i){
})
setInterval(function(){
}, 1000)
var me = this //用me把this缓存一下
this.check_alerts(); //this指向实例
setInterval(function () {
console.log('this:', this); //this指向最外层 window,不是指向实例
}, 1000);
回调函数
//子组件触发
Event.$emit(name, params); //父级监听
Event.$on('remove', function (aa) { //回调函数,参数aa就是参数params
console.log('aa:', aa);
})
子组件不能直接操作父级的数据
只有父级来操作你,不能你操作父级,数据一定要单向流动。需要在子组件里边通过methods来告诉父级你想要干什么。
组件和组件间通信,或者组件和vue实例通信,在上边新建一个Event(事件调度中心)
var Event = new Vue();
Event.$emit(name, params); //把Event这个实例作为一个事件调度中心,把name触发($emit)出去,后边给一个params(传参)
Vue.component('task', {
template: '#task-tpl',
props: ['todo'],
methods: {
action: function (name, params) { //action:行为 name:行为的名称(你想干什么) params:行为的传参
Event.$emit(name, params);
}
}
})
Event里边的this要注意(作用域)
var me = this; //把this缓存一下
Event.$on('remove', function (id) {
if (id) {
me.remove(id);
}
})
<task :todo="todo"></task>
Vue.component('task', {
template: '#task-tpl',
props: ['todo']
});
// 自定义组件task,他需要的数据是todo,通过 :(v-bind),把变量 todo 给他传进去
// <task a="1" :todo="todo"></task>,如果 "a" 在 props 里边不存在,vue不知道你在说什么,必须在props里边传了(["todo"]),他才会去解析
vue中数组的元素 修改 用vue.set()
this.list[index] = Object.assign({},this.current); //不行,vue检测不到
Vue.set(this.list, index, copy(this.current)); //可以,vue可以检测的到
Vue.set(this.list[i], 'complete', !this.list[i].completed); //可以,vue可以检测的到
{{todo.desc || '暂无详情'}} // || 否则(如果没有)
watch: 监控
watch: {
list: { //属性名称(监控对象) 每次当list发生变化的时候,自动执行handler函数
deep: true,
handler: function (n, o) { //handler:处理(用手段去处理)
if (n) {
ms.set('list', n);
} else {
ms.set('list', []);
}
}
}
}
some() 返回 判断
array.some( function(currentvalue){
return currentvalue == aa // return currentvalue.id == 11 (如果要查询的 对象 具有id属性)
})
//some 检测数组中的元素是否满足指定条件(函数提供),如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测,
//如果没有满足条件的元素,则返回false
//sonme 里边是个函数
//currentvalue参数 要查询的 对象 当前的 元素
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.some(checkAdult);
}
//true
forEach() 迭代
array.forEach(function(currentValue, index){
this.value
})
//forEach 调用数组的每个元素,并将元素传递给回调函数。
//forEach 里边是个函数
//currentvalue参数 要查询的 对象 当前的 元素, index参数 当前元素的索引值
<button onclick="numbers.forEach(myFunction)">点我</button>
<p id="demo"></p> <script>
demoP = document.getElementById("demo");
var numbers = [4, 9, 16, 25]; function myFunction(item, index) {
demoP.innerHTML = demoP.innerHTML + "index[" + index + "]: " + item + "<br>";
}
</script> //
index[0]: 4
index[1]: 9
index[2]: 16
index[3]: 25
find() 返回要寻找的元素
array.find( function(currentvalue){
return currentvalue == aa // return currentvalue.id == 11 (如果要查询的 对象 具有id属性)
})
//find 返回 传入一个测试条件(函数)符合条件的数组第一个元素
//find 里边是个函数
//currentvalue参数 要查询的 对象 当前的 元素
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.find(checkAdult);
}
//18
findIndex() 返回要寻找的下标
var ages = [3, 10, 18, 20];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
}
//
数组自带 index(数组元素的下标)
splice()
array.splice(index,howmany,item1,.....,itemX)
//index: 必需,从何处 添加/删除 数组, 该参数是开始 添加/删除 数组元素的下标
//howmany: 必需,应该删除多少元素,可以是0 (0的情况是添加)
//intemX: 可选,要添加到数据的 新元素
插入:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi"); //Banana,Orange,Lemon,Kiwi,Apple,Mango
删除并插入
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi"); // Banana,Orange,Lemon,Kiwi,Mango
删除
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,2); //Banana,Orange
computed \ methods 里边是(各种)函数,函数里边调用变量用this. computed 里边是 (各种)函数返回对象 实例中data是对象, 在组件中(在其他里边)data是函数返回对象
Object assign
Object.assign(target, ...sources)
克隆对象
var obj = {a: 1};
var copy = Object.assign({}, obj);
console.log(copy); // {a: 1};
合并对象
var o1 = {a: 1};
var o2 = {b: 2};
var o3 = {c: 3};
var obj = Object.assign(o1, o2, o3);
console.log(obj); //{a: 1, b: 2, c: 3}
console.log(o1); //{a: 1, b: 2, c: 3}, 目标对象被改变了
js中if条件为null/undefined/0/NaN/""表达式时,统统被解释为false,此外均为true
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
v-model:把当前这个input里边的值指到哪里
<input v-model="current.title" id="task-input" type="text">
JSON.stringify() 方法将 JavaScript对象 转换为 JSON字符串。
JSON.parse() 方法将 JSON字符串 转换为 JavaScript对象。
<p id="demo"></p>
<script>
var obj = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var myJSON = JSON.stringify(obj);
document.getElementById("demo").innerHTML = myJSON;
</script>
//运行结果:{"name":"runoob","alexa":10000,"site":"www.runoob.com"}
<p id="demo"></p>
<script>
var text = '{"employees":[' +
'{"name":"菜鸟教程","site":"http://www.runoob.com" },' +
'{"name":"Google","site":"http://www.Google.com" },' +
'{"name":"Taobao","site":"http://www.taobao.com" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj;
</script> //运行结果:[object Object] <p id="demo"></p>
<script>
var text = '{"employees":[' +
'{"name":"菜鸟教程","site":"http://www.runoob.com" },' +
'{"name":"Google","site":"http://www.Google.com" },' +
'{"name":"Taobao","site":"http://www.taobao.com" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.employees[1].name;
</script> //运行结果:Google
<p id="demo"></p>
<script>
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
document.getElementById("demo").innerHTML = person;
</script> //运行结果:[object Object] <p id="demo"></p>
<script>
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
document.getElementById("demo").innerHTML = person.firstName;
</script> //运行结果:John
vue实例相关的更多相关文章
- vue实例相关2
vue data中 对象/数组 不为空,即使定义为[]/{} new Vue({ el: '#main', data: { list: [], current: {}, aa:'' } }) cons ...
- vue第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件)
第六单元(vue的实例和组件-vue实例的相关属性和方法-解释vue的原理-创建vue的组件) #课程目标 掌握vue实例的相关属性和方法的含义和使用 了解vue的数据响应原理 熟悉创建组件,了解全局 ...
- 05-Vue入门系列之Vue实例详解与生命周期
Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...
- Vue实例对象的数据选项
前面的话 一般地,当模板内容较简单时,使用data选项配合表达式即可.涉及到复杂逻辑时,则需要用到methods.computed.watch等方法.本文将详细介绍Vue实例对象的数据选项 data ...
- vue.js开发环境搭建以及创建一个vue实例
Vue.js 是一套构建用户界面的渐进式框架.Vue 只关注视图层, 采用自底向上增量开发的设计.Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. 在使用 vue.js ...
- Vue 实例中的生命周期钩子
Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻 ...
- vue2.0 关于Vue实例的生命周期
什么是生命周期 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁的过 ...
- vue学习笔记(四)——Vue实例以及生命周期
1.Vue实例API 1.构造器(实例化) var vm = new Vue({ //选项 |-------DOM(3) | |-------el (提供一个在页面上已存在的 DOM 元素作为 V ...
- Vue01 Vue介绍、Vue使用、Vue实例的创建、数据绑定、Vue实例的生命周期、差值与表达式、指令与事件、语法糖
1 Vue介绍 1.1 官方介绍 vue是一个简单小巧的渐进式的技术栈,它提供了Web开发中常用的高级功能:视图和数据的解耦.组件的服用.路由.状态管理.虚拟DOM 说明:简单小巧 -> 压缩后 ...
随机推荐
- 深度学习框架PyTorch一书的学习-第三章-Tensor和autograd-2-autograd
参考https://github.com/chenyuntc/pytorch-book/tree/v1.0 希望大家直接到上面的网址去查看代码,下面是本人的笔记 torch.autograd就是为了方 ...
- ABAQUS复合材料
转自)http://meiniyuan.blog.sohu.com/134141022.html 有很多帖子相当的不错,介绍了复合材料研究的基本的原理和方法,发现好的帖子再更新:0 c3 n0 ~+ ...
- python读写修改配置文件(ini)
python 有时候参数需要保存到配置文件中 接下来总结一下 配置文件的读写和修改的操作 代码如下: #!/usr/bin/env python # -*- coding: utf- -*- # 读 ...
- WPF效果(GIS二维篇)
距离上次发东西已经过去了貌似不知多少天了,突然发现自己懒得总结了.这毛病感觉不好,还得写点东西来充实一下自己,不然这样整天浑浑噩噩的过日子,也太平淡了,不管怎么说,起码得给自己的经历留下点东西吧.闲话 ...
- WPF之TextBox和PasswordBox水印效果
在博客园里看到了好多关于文本框和密码框水印效果的文章,今天有空也来实现一把,最终效果图如下: 文本框的话,稍微好一点直接可以绑定它的Text属性,因为他是个依赖属性,我用了二种方式来实现水印效果:触发 ...
- nodeJs配置
1. vi /etc/profile export NODE_HOME=/opt/node-v6.9.1-linux-x64export PATH=$PATH:$NODE_HOME/binexpor ...
- Day4 Python基础之数据类型(三)
计算机中,一切皆为对象 世界万物,皆为对象,一切对象皆可分类 ------------------------------------我是分割线---------------------------- ...
- JDK8-新特性-附demo
import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Base64; impor ...
- 单列模式,装饰器、new方法、类/静态方法实现单列模式
一.单列模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在. 如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 C ...
- HashSet中存放不重复元素
一.自定义对象存放在hashSet中,保证元素不重复.重写hashCode()和equals()方法 public class Student{ private String name; privat ...
