说说Vue.js的v-for

简介: v-for的话,相比传统的jQuery的  $.each或者for循环要简洁明了的多,比如在Jquery中我要遍历数据,通常如下几种方式:  $.each(apps, function(i, app){ rows = rows + ''; rows = rows + ''+app.

v-for的话,相比传统的jQuery的  $.each或者for循环要简洁明了的多,

比如在Jquery中我要遍历数据,通常如下几种方式:

 

    $.each(apps, function(i, app){
                
                rows = rows +  '<tr>';
                rows = rows + '<td class="info">'+app.roleName+'</td>';
                rows = rows + '<td class="info">'+app.roleType+'</td>';
                rows = rows + '<td class="info">'+app.createDate+'</td>';
                rows = rows + '<td class="info"><input type="button" value="编辑" onclick="editRole('+app.roleCode+')"/>&nbsp;<input type="button" onclick="deleteRoleInfo('+app.roleCode+')" value="删除"/></td>';
                rows = rows +  '</tr>';
            });

 

    for (var i = 0; i < list.length; i++) {
                  var allowAuth = list[i].allowAuth;
                  if(allowAuth==1){
                      allowAuth="可授权用户,可操作密码";
                  }else{
                      allowAuth="";
                  }
                  rows = rows + '<tr>';
                  rows = rows + '  <td>' + list[i].name + '</td>';
                  rows = rows + '  <td>' + list[i].mobile + '</td>';
                  rows = rows + '  <td>' + list[i].mobile + '</td>';
                  rows = rows + '  <td>' + list[i].authorizer + '</td>';
                  rows = rows + '  <td>开始时间:' + list[i].authTimeStart + '<br/>结束时间:'+list[i].authTimeEnd+'</td>';
                  rows = rows + '  <td>' + allowAuth + '</td>';
                  rows = rows
                          + '  <td><a href="#" class="iconfont icon-icon-test12" onclick="editlockManager('+list[i].id+')"></a></td>'; 
                  rows = rows + '</tr>';
              }

 

以上说明的这两种遍历数据的方式,是为jQuery中常用的两种方式。

而vue.js遍历数据,示例如下:

js代码:

			 var apps = data.resourceTypeList;
			 new Vue({
			  		el:"#test",
			  		data:
			  		{
			  		  items:apps	  			
			  		}
			  	});
			 

 异步交互,将后台获取的集合数据赋值给apps,其中el的意思可归于如下:

el

类型: String | HTMLElement | Function

限制: 在组件定义中只能是函数。

详细:

为实例提供挂载元素。值可以是 CSS 选择符,或实际 HTML 元素,或返回 HTML 元素的函数。注意元素只用作挂载点。如果提供了模板则元素被替换,除非 replace 为 false。元素可以用 vm.$el 访问。

用在 Vue.extend 中必须是函数值,这样所有实例不会共享元素。

如果在初始化时指定了这个选项,实例将立即进入编译过程。否则,需要调用 vm.$mount(),手动开始编译。

 

在这里我使用的是css选择符,使用的ID选择器。

 

前台html代码:

当然了,前端要用,就得必须引用vue.min.js这个类库,否则不能达到应有的效果。

<table align="center" id="test">
            <tr>
                <td>方案名称</td>
                <td><input type="text" id="plan_name"></td>
                
            </tr>
            
    
            <tr>
            
                <td>资源类型</td> 
                <td>
                <select id="typeName">
                    <option v-for="site in items">{{site.typeName}}</option>
                </select>
                </td>
            </tr>
        
            <tr>
                <td>标准价</td>
                
                <td> 
                <input type="text" id="price"
                    placeholder="请输入标准价">
                </td>

            </tr>
            
            <tr>
                <td>默认方案</td> 
                <td>
                <input type="radio" name="isDefaultPlan"
                    value="0" checked><input type="radio"
                    name="isDefaultPlan" value="1"></td>
            </tr>
        
            <tr>
                <td>状态</td> 
                
                <td><input type="radio" name="status" value="0"
                     checked>开启
                    <input type="radio" name="status"
                    value="1">关闭
                </td>
            </tr>
            <tr>
            </tr>
            <tr>
                <td>
                <input type="button" onclick="addResourcePlan()" value="保存">
                </td>
            </tr>
        
        
        </table>

 

不过任何框架都有其局限性,比如框架之间的冲突问题,导致效果出不来也不报错,还有就是其他一些奇奇怪怪的问题,比如今天我遇到一个很奇怪的问题,我select下拉列表数据遍历,数据正常显示在前台,而当我需要将其传入后台时,就出现如图所示的样子:

 

有人说是这个原因:

 

 

也有人说是这个原因:

第一个人说是前端没有统一指定字符集charset=utf-8

的确,如果没有指定这个,那么整个页面有中文的地方都将会乱码,但是可惜我没有,因为,我默认创建的界面就已经指定了charset=utf-8,故排除该原因

 

第二个说的这个原因,我不能确定,故有待验证

 

这是我当时通过搜索引擎找到的比较靠谱的解答,不过后来我反证法,我用jQuery的遍历试一试,如果jQuery的遍历还是一样的结果,那么只能说与第二个人的说法或许有关,又或者是有其他隐性问题。

最后我用jQuery的$.each试了试,发现就没有出现这个问题了,有人或许会说,也许是缓存吧,如果是缓存的话,我个人修改的js分别用alert测试过,每次修改有的时候我的alert里面的值已经改了,但是还是之前的,即便我f5了,还是一样,除非清除浏览器缓存,重新打开,但是那样太耗时了,对于开发者而言惜时如金啊!我通过ctrl+f5就行了。

这里简单说下f5和ctrl+f5的区别:

按F5有时候一些内容是不会被更新的,而CTRL+F5则所有内容都会被更新.
具体区别是:F5通常只是刷新本地缓存;Ctrl+F5可以把INTERNET临时文件夹文件删除再重新从服务器下载,也就是彻底刷新页面。

我想这个回答很容易让人理解。

最后换成了$.each试了一遍又一遍,真的没有之前的那个问题了。难道是vue.min.js的缘故吗?但是如果是vue.min.js,那么为什么我之前使用vue的v-for为什么没有出现乱码情况了?比如我的营销中心业务中资源展示功能,就是用的v-for。难道是因为中文与非中文字符的缘故吗?我不能妄加猜测,因为编程一门实战且严谨的科学,如数学那样由不得半点含糊,尽管我数学不好,但是数学的一个特性,我还是很喜欢的,那就是"对就是对,错就是错,不存在也许或许可能这样的词汇"。

 

目录
相关文章
|
JavaScript
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
这篇文章是关于Vue.js的学习指南,涵盖了事件监听、条件判断、循环遍历、数组方法响应性、案例分析以及高阶函数的使用。
196 2
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
|
缓存 JavaScript 前端开发
vue-day02计算属性,v-bind,v-if,v-for
文章介绍了Vue.js中的计算属性、class与style的绑定、条件渲染和列表渲染的使用。通过示例代码展示了如何使用计算属性简化模板逻辑、如何通过v-bind动态绑定class和style、如何使用v-if进行条件渲染以及如何使用v-for进行列表渲染。这些特性使得Vue.js在构建动态用户界面时更加灵活和强大。
vue-day02计算属性,v-bind,v-if,v-for
|
JavaScript 索引
vue 在 v-for 时给每项元素绑定事件
在 Vue 中使用 v-for 渲染列表时,可以通过给每项元素绑定事件来实现交互功能。通常使用 `@click` 等事件修饰符,结合方法或内联表达式来处理事件。例如:`&lt;li v-for=&quot;item in items&quot; @click=&quot;handleClick(item)&quot;&gt;{{ item }}&lt;/li&gt;`。
|
JavaScript 前端开发 开发者
Vue v-for 进阶指南:in 与 of 的区别及应用场景 | 笔记
Vue.js 中的 v-for 是强大的遍历指令,但其中的 in 和 of 关键字往往被开发者忽视。尽管它们的用法相似,但适用的场景和数据结构却各有不同。本文将详细探讨 v-for 中 in 和 of 的区别、适用场景以及在实际开发中的最佳使用时机。通过理解它们的差异,你将能够编写更加高效、简洁的 Vue.js 代码,灵活应对各种数据结构的遍历需求。
557 6
|
JavaScript 算法 前端开发
深入剖析Vue中v-for的使用及index作为key的弊端
深入剖析Vue中v-for的使用及index作为key的弊端
417 2
|
JavaScript 前端开发
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
Vue学习笔记8:解决Vue学习笔记7中用v-for指令渲染列表遇到两个问题
|
JavaScript 前端开发 API
Vue学习笔记7:使用v-for指令渲染列表
Vue学习笔记7:使用v-for指令渲染列表
|
JavaScript 算法 前端开发
在Vue开发中v-if指令和v-show指令的使用介绍,v-if和v-for的优先级以及使用注意事项的介绍
在Vue开发中v-if指令和v-show指令的使用介绍,v-if和v-for的优先级以及使用注意事项的介绍
402 0
|
JavaScript 前端开发 安全
Vue学习之--------内置指令的使用【v-bind、v-model、v-for、v-on、v-if 、v-else、v-show、v-text。。。】(2022/7/19)
这篇文章详细介绍了Vue中常见的内置指令,如v-bind、v-model、v-for、v-on、v-if、v-else、v-show、v-text和v-html等,并通过代码示例演示了它们的使用和效果。
Vue学习之--------内置指令的使用【v-bind、v-model、v-for、v-on、v-if 、v-else、v-show、v-text。。。】(2022/7/19)
|
JavaScript
Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)
这篇博客文章详细介绍了Vue中列表渲染的基础知识、`v-for`指令的使用、`key`的原理和列表过滤的实现。通过代码实例和测试效果,展示了如何遍历数组和对象、使用`key`属性优化渲染性能,以及如何实现列表的动态过滤功能。
Vue学习之--------列表渲染、v-for中key的原理、列表过滤的实现(2022/7/13)