1.数据产生变化或者页面需要vue数据渲染完之后加载的东西 Vue.nextTick(function () { alert(123); }); 2 调用vue方法 --------------Vue中添加方法 /** * 将页面时间绑定类型格式化 * fmt 格式: 'yyyy-MM-dd hh:mm:ss'; */ Vue.filter('dataFormat', function (value,fmt) { var getDate = new Date(value); var o = {…
1.vue中数据接收成功,页面渲染失败.代码如下 经过查找资料修改代码为 或是 原因是: 由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如: vm.items.length = newLength 但是可以通过set和push,splice操作数组…
监控$route 在vue项目中,假使我们在同一个路由下,只是改变路由后面的参数值,如果不监听路由参数值的变化,页面无数据刷新,需手动刷新浏览器,这样做就不是我们的预期效果. 举例:当前路由为  /pjthome?pjtid=123456 mounted: function () { this.pjtid = this.$route.query.pjtid this.pjtdetail() }, 在页面pjtdetail()方法中,需要用到pjtid这个参数,假如在同一页面有相似项目切换,只是p…
两种方法: 方法一: 使用$nextTick,在异步获得数据之后再获取元素: 方法二: 在then之后再获取该元素: 问题2:vue中监听改变数组的方法: let idx =; this.listInfo =item.filter((item,index)=>{ if(index==idx){ return item.showAll = true; }else{ return item.showAll = false; } }) this.listInfo =item.filter((item,…
一.问题产生背景: 组件内的数据比较复杂,涉及多层次的数组和对象的情况下,某些值发生变化但是页面值没有变化:更新vuex的数据,同样在涉及多层次的数组和对象的情况下,某些值发生变化但是页面值没有变化:某些环境下,比如本地.测试等没有出现此问题,但是灰度和正式却出现此问题:总而言之,经过检查后台接口数据以及前端处理的数据皆正常,但是页面数据显示不正常的时候,就该检查是否没有使用$set了,另外,涉及修改多层次的数组和对象等数据,最好还是使用$set而不直接赋值.…
有时候我们需要在spring boot容器启动并加载完后,开一些线程或者一些程序来干某些事情.这时候我们需要配置ContextRefreshedEvent事件来实现我们要做的事情 1.ApplicationStartup类 public class ApplicationStartup implements ApplicationListener<ContextRefreshedEvent>{ public void onApplicationEvent(ContextRefreshedEve…
今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令. 在ng-repeat模板实例内部会暴露出一些特殊属性$index/$first/$middle/$last/$odd/$even,$index会随着每次遍历(从0开始)递增,当遍历到最后一个时,$last的值为true,所以可以通过判断$last的值来监听ng-repeat的执行状态, 怎么在遍历过程中拿到$last的值:自定义指令 v…
线程与进程 说到单线程,就得从操作系统进程开始说起.在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位,也是程序执行的最小单位.任务调度采用的是时间片轮转的抢占式调度方式,而进程是任务调度的最小单位,每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离.后来,随着计算机的发展,对CPU的要求越来越高,进程之间的切换开销较大,已经无法满足越来越复杂的程序的要求了.于是就发明了线程,线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元.这里把线程比喻一个车间…
目录 1.Vue 无法检测实例被创建时不存在于 data 中的 属性 2. Vue 无法检测'对象属性'的添加或移除 3.Vue 不能检测利用数组索引直接修改一个数组项 4.Vue 不能监测直接修改数组长度的变化 5.在异步更新执行之前操作 DOM 数据不会变化 6.循环嵌套层级太深,视图不更新? 7.路由参数变化时,页面不更新(数据不更新) 8.使用keep-alive之后数据无法实时更新问题 1.Vue 无法检测实例被创建时不存在于 data 中的 属性 原因: 由于 Vue 会在初始化实例…
加载html中的静态资源 其中,加载静态资源的过程,一般为浏览器根据DNS服务器得到域名的IP地址,然后向这个IP的机器发送http请求,服务器收到.处理并返回http请求,浏览器得到返回http请求. 浏览器渲染页面的过程 根据HTML 结构生成DOM Tree 根据CSS 生成 CSSOM 将DOM和CSSOM结合生成RenderTree 浏览器根据RenderTree开始渲染和展示 遇到<script> 时,会执行并阻塞渲染 window.onload // 页面的全部资源全部渲染完 d…
1. 从输入url到得到html的详细过程 1.1 加载资源的形式      输入 URL 或跳转页面 加载 html 1.2 加载一个资源的过程 浏览器根据DNS服务器得到域名的IP地址 向这个IP的机器发送http请求 服务器收到后 处理并返回 http请求 浏览器得到返回内容 1.3 浏览器渲染页面的过程 根据 HTML 结构生成 DOM Tree 根据 CSS 生成 CSSOM 将 DOM 和 CSSOM 整合形成 RenderTree 渲染树 浏览器根据 渲染树 开始渲染 遇到 <sc…
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML> <html lang="zh-cn"> <head> &…
ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架. Extjs加载Store是异步加载的,这有很多好处.但是当我们要在两个或多个不同的store加载完再执行一些操作时,异步加载就成了一个问题.在Stack Overflow 等网站搜集并试用了几个处理方法,总结如下. 1.自己定义一个组件 Ext.define(‘Ext.ux.StoreLoadCoordinator‘, { mixins: { observable: ‘Ext.util.Observable‘…
  v-for不能进行双向数据绑定,页面渲染完成后,再次更改v-for遍历的数据,js里面打印的数据看到数据值已经更改,但是页面的数据就是没有渲染,这是为什么呢? vue中v-for和angularjs中的ng-repeat不用 ,它对页面只进行一次渲染.后续如果需要更改数据且显示在页面上就需要想想其他办法啦~~~ 经过多次踩坑发现如下解决办法: 1.将vue引入当前页面,如下图所示: 2.使用Vue.set方法来对数据进行更改及渲染,如下图所示:…
在测试methods和conputed区别的时候,我在methods方法体内增加了一个vue数据自增语句,类似于this.abc++;导致整个页面无法加载出来. 原因是this.abc改变 会触发页面重新渲染,然后重新调用method方法,导致this.abc又发生改变,再次触发页面渲染,进入死循环…
对象点属性不能获取数据. 原因: 在创建数据对象时我使用了k,v方式:tempMap['category '] = this.category[i].label 如果在创建数据时使用的k,v方式,那么在页面渲染数据时用 item['category ']的方式获取, 如果用点属性的方式创建的,那么获取时也要用item.category获取 来自为知笔记(Wiz)…
在项目实践过程中,当我们使用如avalon这样的MVVM框架时,通常会发现一直会有个问题. 过往的经验告诉我们,想在页面加载完之后处理些事件我们可以绑定document的ready方法或者使用jquery的$(function{})去处理. 但是,如果在页面中数据有些时动态渲染的呢,这些数据不一定时在页面加载完之后就存在,而是页面加载完之后,由于业务需求,我们可能还需要去ajax后台重新渲染某些页面, 这个时候我们可以将页面需要动态渲染的元素绑定一个事件,如下: $("变化的元素选择器"…
其他章节请看: vue 快速入门 系列 侦测数据的变化 - [基本实现] 在 初步认识 vue 这篇文章的 hello-world 示例中,我们通过修改数据(app.seen = false),页面中的一行文本(现在你看到我了)就不见了. 这里涉及到 Vue 一个重要特性:响应式系统.数据模型只是普通的 JavaScript 对象,当我们修改时,视图会被更新.而变化侦测是响应式系统的核心. Object的变化侦测 下面我们就来模拟侦测数据变化的逻辑. 强调一下我们要做的事情:数据变化,通知到外界…
<div id="app"> <ul > <li v-for="(val,key,idx) in list" > {{key}} {{val}} {{idx}} </li> </ul> </div> <script> var app = new Vue({ el: '#app', created(){ setTimeout(()=>{ this.listp["1&qu…
前言 上篇博文我们依葫芦画瓢已经将hello world 展现在界面上啦,但是是不是感觉新虚虚的,总觉得这么多文件,项目怎么就启动起来了呢?怎么访问到8080 端口就能进入到我们的首页呢.整个的流程是怎么样的呢? 我也是刚刚接触,所以就会有这样的困惑,所以这篇就简单的理解一下项目页面渲染的过程. 渲染过程 我们上篇文章说main.js 是无用的,是废代码,只是起到支撑框架的.但是其实我们应该有感觉,把他删除了整个项目就跑步起来了.其实main.js 算是项目的入口了.我们就从这个文件看起. im…
想要的效果 1.第一页只显示第一道题的内容,如图红框2.答题后,点击下一题,内容显示第二道题的内容 代码 answer.wxml <!--pages/answer/answer.wxml--> <view class="app-answer"> <view class="answer-header"> <view class="header-title">全民答题</view> <…
一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for="item in items">{{ item.name }}</li> </ul> <p v-else>No items found.</p> </div> var vrrapp = new Vue({ el:"…
创建一个组件时,数据类型是数组,在删除这个数组中的数据时,数组中的数据是对的,但页面渲染的数据却不对. 举例:(不一定复现) <ul> <li v-for="(item, index) in peoples" :key="index">{{item.name}} <span @click="del(index)">删除</span> </li> </ul> <scrip…
vue 动态渲染数据很慢或不渲染 原因是因为vue检测速度很慢,因为多层循环了,在VUE 2.x的时候还能渲染出来,1.x的时候压根渲染不出来.解决方式:在动态改变数据的方法,第一行加上 this.$forceUpdate(); 就可解决渲染慢or渲染不出来的问题…
其他章节请看: vue 快速入门 系列 侦测数据的变化 - [vue 源码分析] 本文将 vue 中与数据侦测相关的源码摘了出来,配合上文(侦测数据的变化 - [基本实现]) 一起来分析一下 vue 是如何实现数据侦测的. Tip: 以下代码出自 vue.esm.js,版本为 v2.5.20.无关代码有一些删减.中文注释都是笔者添加. /** * Define a property. * 定义属性的方法 */ function def (obj, key, val, enumerable) {…
其他章节请看: vue 快速入门 系列 侦测数据的变化 - [vue api 原理] 前面(侦测数据的变化 - [基本实现])我们已经介绍了新增属性无法被侦测到,以及通过 delete 删除数据也不会通知外界,因此 vue 提供了 vm.$set() 和 vm.$delete() 来解决这个问题. vm.$watch() 方法赋予我们监听实例上数据变化的能力. 下面依次对这三个方法的使用以及原理进行介绍. Tip: 以下代码出自 vue.esm.js,版本为 v2.5.20.无关代码有一些删减.…
从输入URL到渲染出整个页面的过程包括三个部分: 1.DNS解析URL的过程 2.浏览器发送请求与服务器交互的过程 3.浏览器对接收到的html页面渲染的过程 一.DNS解析URL的过程 DNS解析的过程就是寻找哪个服务器上有请求的资源.因为ip地址不容易记忆,一般会使用URL域名(如www.baidu.com)作为网址.DNS解析就是将域名翻译成IP地址的过程. 具体过程: 1)浏览器缓存:浏览器会按照一定的频率 缓存DNS记录 2)操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,就会取…
嘿,Goodgirl and GoodBoy,点进来了就看完点个赞再go. Vue这个框架就不简单介绍了,它最大的特性就是数据的双向绑定以及虚拟dom.核心就是用数据来驱动视图层的改变.先看一段代码. 一.示例 var vm = new Vue({ data: { obj: { a: 1 } }, created: function () { console.log(this.obj); } }); 二.实现原理 vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的. )数据劫持…
Vue 数据响应式原理 Vue.js 的核心包括一套“响应式系统”.“响应式”,是指当数据改变后,Vue 会通知到使用该数据的代码.例如,视图渲染中使用了数据,数据改变后,视图也会自动更新. 举个简单的例子,对于模板: {{ name }} 创建一个 Vue 组件: var vm = new Vue({ el: '#root', data: { name: 'luobo' } }) 代码执行后,页面上对应位置会显示:luobo. 如果想改变显示的名字,只需要执行: vm.name = 'tang…
这一节肯定能完! 经过DOM字符串的AST转化,再通过render变成vnode,最后就剩下patch到页面上了. render函数跑完应该是在这里: function mountComponent(vm, el, hydrating) { vm.$el = el; if (!vm.$options.render) { vm.$options.render = createEmptyVNode; { // warning } } // beforeMount var updateComponen…