vue.js api地址:http://cn.vuejs.org/
以下代码之前为同步加载数据,可能会导致页面整体变慢,采用异步加载方式实现
主要利用vue的数据的变化,达到异步加载的效果,动态的添加数据,vue更新数据,达到异步请求加载数据目的,充分理解vue.js加载数据。
JS以及页面部分代码片段 //命名数据 var sourceOfTruth = {}; sourceOfTruth.items = {}; sourceOfTruth.data = {}; //初始化sourceOfTruth数据方法 initPackageInfo:function(sessionKey,page){ var data = { "token":sessionKey, "pageNum":page, "pageSize":pageSize }; $.ajax({ url:urlConfig.teacherUrl+"/xxx.do", dataType:'JSON', type:'GET', data:data }).done(function(cfg){ if(cfg.stateCode==4002){ window.location.href=urlConfig.masterUrl+"login/index.html?goBack="+window.location.href; }else if(cfg.stateCode==3000){ $("#tj-course-package").show(); if(cfg.data==null || cfg.data=='null'){ $("#tj-kcb-nodata1").show(); sourceOfTruth.items=null; }else{ var t1=cfg.data.result; /** * 去除同步加载数据 * */ sourceOfTruth.items = t1; $("#jpage").empty(); if(cfg.data.totalCount<=pageSize)return; var total = Math.ceil(cfg.data.totalCount/pageSize); pageNav( $("#jpage"), //点击页码时的回调 function(c, t) { P.initPackageInfo(qjsessionKey,c); $("html,body").animate({scrollTop:$("#tj-course-package").offset().top},1); } ).go(page, total); } } }) }, //vue 中初始化div id=tj-course-package 相当于与id=tj-course-package的域初始化 setCoursePackageList:function(){ var vm4 = new Vue({ el:'#tj-course-package', data:sourceOfTruth, // 在 `methods` 对象中定义方法 methods:{ //展开与扩展的onclick点击方法 closeMessage:function(index,idname,event){ var id=sourceOfTruth.items[index].id; var obj =$("#"+idname+index); if($(obj).hasClass("cur")){ event.cancelBubble = true; $(obj).removeClass("cur"); $("#mesageTip_"+index).html("展开"); }else{ //加载数据 P.initVideosInfo(id); sourceOfTruth.data=coursePackage; $(obj).addClass("class","cur"); $("#mesageTip_"+index).html("收起"); } } }, ready:function(){ } }); } //页面片段 中 closeMessage 为点击事件,负责异步加载数据 <div class="s-tjpkcb" id="tj-course-package" style="display:none;"> <h3>精品课程<span>(收益)</span></h3> <div class="s-tjpkcb-box"> <div v-for="item in items"> <!-- 点击推荐一行,对应的s-tjpkcb-con添加类名 cur,课程展开, --> <div class="{{packageId==item.id?'s-tjpkcb-con cur':'s-tjpkcb-con'}}" id="s-tjpkcb-con_{{$index}}" v-on:click="tj_pkcb($index,'s-tjpkcb-con_')"> <div class="s-tjpkcbcon-tit cfix"> <a href="javascript:;"> <p title="{{item.name}}">{{item.name}}</p> </a> <input type="button" value="推荐课程" v-on:click="tj_pkcb_info($index)"/> <a class="s-tjpkcbcon-zk" href="javascript:;" v-on:click="closeMessage($index,'s-tjpkcb-con_',$event)"><span class="open_close" id="mesageTip_{{$index}}">{{packageId==item.id?'收起':'展开'}}</span><em></em></a> <div class="s-tjpkcbcon-titjs">{{item.description}}</div> </div> <div class="s-tjpkcbcon-bot"> <ul class="s-tggksp-list cfix"> //异步加载数据data <li v-for="item1 in data"> <p class="s-tggksplist-img"> <a class="" v-on:click="auth_status(item1.id,item.id)" href="javascript:;"> <img v-bind:src="item1.videoPic==null?'http://www.xxx.com/source/specialImg/2016/01/1453202377242912614.png':'http://www.daydays.com'+item1.videoPic" alt=""> </a> <em v-on:click="auth_status(item1.id,item.id)"></em> </p> <p class="s-tggksplist-name" title="{{item1.title}}"> <a v-on:click="auth_status(item1.id,item.id)" href="javascript:;"> {{item1.title}} </a> </p> <a class="s-link" v-on:click="auth_status(item1.id,item.id)" title="{{item1.title}}" href="javascript:;"></a> </li> </ul> </div> </div> </div>
相关推荐
7. **异步组件和懒加载**:Vue支持异步组件加载,可以按需加载大型应用的组件,减少初始加载时间。 8. **插槽和作用域插槽**:Vue的插槽机制允许在父组件中定义内容区域,然后在子组件中决定如何显示这些内容,作用...
在性能优化方面,Vue.js提供了诸如懒加载、异步组件、缓存策略等手段来提升应用的加载速度和运行效率。此外,Vue Router的懒加载功能可以让只在需要时才加载部分路由,降低初始加载时间。Vuex状态管理库可以帮助优化...
- **响应式系统**:Vue.js的响应式系统基于数据绑定,当数据变化时,视图会自动更新。 2. **安装与设置**: - **CLI工具**:Vue CLI(命令行界面)简化了项目初始化和脚手架搭建,提供预设和自定义配置。 - **...
1. **响应式系统**:Vue.js 2采用数据绑定和依赖追踪,确保视图在数据变化时自动更新。这种响应性设计简化了状态管理,使开发者能更专注于业务逻辑。 2. **组件化**:Vue.js 2支持可复用的组件,这使得构建复杂应用...
- **性能优化**:利用Vue的特性如懒加载、异步组件、keep-alive等提升应用性能。 4. **进阶话题**: - **Vue生态**:了解Vuex、Vue Router、Vue CLI等周边库,以及Vue生态系统中的其他工具。 - **单元测试**:...
- **Suspense**:Suspense组件用于处理异步组件加载,提供了一种优雅的方式来处理组件加载时的过渡效果。 - **Fragment和Slot Props**:Vue 3支持了Fragment(多个根节点)和Slot Props,增强了模板的灵活性。 2....
最后,对于想要进行性能优化和深入研究Vue.js的读者,书中会涵盖虚拟DOM的理解,异步组件,以及如何利用Vue.js的render函数进行低级API操作。同时,也会涉及测试驱动开发(TDD)和Vue.js应用的单元测试。 总的来说...
3. **异步数据加载**:通过`async`组件和`axios`库,可以方便地处理API请求,实现数据的异步加载。 4. **组件通信**:通过props、事件、provide/inject等方式,组件间可以互相传递数据。 5. **混入(Mixins)**:...
9. **异步组件和懒加载**:Vue.js 支持异步组件,这使得大型应用可以根据需要按需加载组件,减少初始加载时间。 10. **服务端渲染(SSR)**:Vue Server Renderer 可以将Vue组件渲染为HTML字符串,从而实现首屏加载...
Vue.js是一款轻量级且易于学习的JavaScript库,专注于构建数据驱动的Web界面。它的设计目标是通过简洁的API实现响应式数据绑定和组件化的视图。 **3.2 Vue.js与其他框架的区别** - **灵活性**:Vue.js主要关注视图...
1. **响应式的数据绑定机制**:Vue.js提供了响应式的双向数据绑定功能,当模型(数据)发生变化时,视图会自动更新,而无需手动操作DOM。 2. **组件化开发**:Vue.js鼓励组件化的开发方式,每个组件都是独立可复用...
12. **异步组件与懒加载**:Vue.js 支持异步组件,可以按需加载,减少初始加载量,提升用户体验。 13. **过渡效果**:Vue.js 内置了过渡效果系统,结合第三方库如Animate.css或自定义CSS,可以轻松实现组件的入场、...
Vue.js 提供多种性能优化手段,如懒加载、组件缓存、异步组件和路由懒加载等。此外,还可以通过优化模板、合理利用计算属性和侦听器,以及避免不必要的DOM操作来提升应用性能。 总的来说,Vue.js 的强大之处在于其...
另外,Suspense组件用于处理异步组件的加载,提供了一种优雅的预加载用户体验。 此外,Vue3.0的生命周期钩子进行了重大调整。传统的生命周期钩子如`created()`、`mounted()`等被新的`onBeforeMount()`、`onMounted...
9. **异步组件与懒加载**:Vue.js支持异步加载组件,以提高应用的启动速度。书会讲解如何实现这一点。 10. **过渡效果**:Vue.js内置了过渡系统,可以方便地添加入场、出场动画,结合第三方库如Animate.css或GSAP...
最后,优化方面,Vue.js提供了如懒加载、异步组件、keep-alive等手段来提升应用性能。同时,理解Vue的渲染原理和性能瓶颈分析也是高级开发者必须掌握的技能。 通过"Vue.js 11 Practical Projects"的学习,开发者...
Vue.js 2.0 是一款流行的前端JavaScript框架,由尤雨溪开发,旨在简化Web应用程序的构建。Vue.js 2.0 强调组件化、响应式数据绑定和易用性,使得开发者能够快速构建高性能的用户界面。该“Vue.js 2.0 参考手册”提供...
4. **异步组件与懒加载**:Vue.js支持异步组件,可以按需加载,显著提升页面加载速度。 5. **插槽和作用域插槽**:插槽用于组件内容的插入,作用域插槽则允许子组件向父组件传递数据,进行内容定制。 三、深度学习...
Vue.js 是一款轻量级的前端JavaScript框架,由尤雨溪开发,因其易学易用、高性能和灵活性而广受欢迎。Vue的核心库专注于视图层,易于集成到其他库或现有项目中,使得构建用户界面变得更为简单。"vue.min.js" 文件是...