vue2.0移除或更改的一些东西(移除index key)


Posted in Javascript onAugust 28, 2017

一、vue2.0移除了$index和$key

虽然说现在很多文章说他们的代码是vue2.0版本的,但是有一些仔细一看,发现并不全是2.0版本,有些语法还是1.0的版本,比如这个$index,$key,这两个压根就不是2.0的写法,2.0早就把这两个给删除了,我们先来看看之前的列表渲染是怎么写的

<template>
 <div class="hello">
 <ul>
  <li v-for="item in list">{{$index}}--{{$key}}</li>
 </ul>
 </div>
</template>
<script>
export default {
 data(){
 return{
  list:['姓名','性别','年龄','语文','数学','英语','总分']
 }
 }
}
</script>

这种写法在2.0的环境下虽然可以运行

vue2.0移除或更改的一些东西(移除index key)

但是在控制台却出错了

vue2.0移除或更改的一些东西(移除index key)

$index和$key没有定义,而且在页面上也没有渲染出这两个东西的效果,$index是索引,$key是键值

vue2.0移除或更改的一些东西(移除index key)

在vue2.0中,这种写法改为了

<template>
 <div class="hello">
 <ul>
  <li v-for="(index,item) in list">{{index}}--{{item}}</li>
 </ul>
 </div>
</template>

得到的页面效果如下

vue2.0移除或更改的一些东西(移除index key)

当然,这个问题有很多人写博客提到过,我这里就汇总一下

二、$refs和$els

我在vue2.8.2的版本下使用$refs和$els获取元素的时候,出现了一些问题,当然可能不止是2.8.2版本,其他的版本我还没试过,如果有跟我相同的问题的话可以试试看这种方法。我们先来使用$els

<template>
 <div class="hello">
 <div class="v-t" v-el:v-t>
  <button @click="getElement">测试</button>
 </div>
 </div>
</template>
<script>
export default {
 methods:{
 getElement(){
  let element=this.$els.vT
  console.log(element)
 }
 }
}
</script>

v-el用横杠写法,在用$els的时候用驼峰写法,我在2.8.2版本的vue环境下是获取不了的

vue2.0移除或更改的一些东西(移除index key)

我们再来使用$refs获取元素节点,我们先用这种方法试试看

<template>
 <div class="hello">
 <div class="v-t" ref="vt">
  <button @click="getElement">测试</button>
 </div>
 </div>
</template>
<script>
export default {
 methods:{
 getElement(){
  let element=this.$refs.vt
  console.log(element)
 }
 }
}
</script>

这种方法是可以获取到的

vue2.0移除或更改的一些东西(移除index key)

接下来我们试试看这种写法

<template>
 <div class="hello">
 <div class="v-t" ref="v-t">
  <button @click="getElement">测试</button>
 </div>
 </div>
</template>
<script>
export default {
 methods:{
 getElement(){
  let element=this.$refs['v-t']
  console.log(element)
 }
 }
}
</script>

也是可以获取得到class为v-t的元素

vue2.0移除或更改的一些东西(移除index key)

关于ref注册时间的重要说明: 因为ref本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在!$refs 也不是响应式的,因此你不应该试图用它在模版中做数据绑定。----引用自vue.js官方文档

三、transition

Vue 提供了 transition 的封装组件,比如我们现在要实现一种效果:点击一个按钮之后,缓慢出现一个有背景颜色的div,点击div里面的关闭按钮之后,div缓慢消失。有一种写法是这样的

<template>
 <div class="hello">
 <button @click="show">开启</button>
 <div class="box" v-show="this.tf" transition="fade">
  <button @click="hide">关闭</button>
 </div>
 </div>
</template>
<script>
export default {
 data(){
 return{
  tf:false
 } 
 },
 methods:{
 show(){
  this.tf=true
 },
 hide(){
  this.tf=false
 }
 }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
.box{
 width:177px;
 height:177px;
 transition:all 0.5s
}
.fade-transition{
 opacity:1;
 background:rgba(7,17,27,0.8);
}
.fade-enter,.fade-leave{
 opacity:0;
 background:rgba(7,17,27,0);
}
</style>

这种写法在有些版本运行是有效果的,但是在2.8.0版本下却没有效果,点击开启按钮之后只出现一个关闭按钮,现在我们更改一下写法

<template>
 <div class="hello">
 <button @click="show">开启</button>
 <transition>
  <div class="box" v-show="this.tf">
  <button @click="hide">关闭</button>
  </div>
 </transition>
 </div>
</template>
<script>
export default {
 data(){
 return{
  tf:false
 } 
 },
 methods:{
 show(){
  this.tf=true
 },
 hide(){
  this.tf=false
 }
 }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style>
.box{
 width:177px;
 height:177px;
 background:rgba(7,17,27,0.8);
}
.v-enter-active,.v-leave-active{
 transition: opacity 0.5s
} 
.v-enter,.v-leave-to{
 opacity: 0
}
</style>

这种写法就有效果了,这是根据官方文档写的,实现之后效果是这样的

vue2.0移除或更改的一些东西(移除index key)

四、结语

这是我最近学习遇到的一些小问题,有时候看视频,别人写的代码照着敲,我们敲完之后可能都还运行不了,这时候有可能是版本问题,框架更新了,语法不一样了等等。现在一些框架更新太快了,对我们这些码农来说确实挺考验的。

Javascript 相关文章推荐
js每次Title显示不同的名言
Sep 25 Javascript
jquery 学习笔记 传智博客佟老师附详细注释
Sep 12 Javascript
js实现在页面上弹出蒙板技巧简单实用
Apr 16 Javascript
自己写的Javascript计算时间差函数
Oct 28 Javascript
jquery text(),val(),html()方法区别总结
Nov 04 Javascript
JavaScript正则表达式匹配 div  style标签
Mar 15 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 Javascript
vue点击input弹出带搜索键盘并监听该元素的方法
Aug 25 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
js this 绑定机制深入详解
Apr 30 Javascript
JavaScript中数组去重的5种方法
Jul 04 Javascript
Javascript文本框脚本实现方法解析
Oct 30 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
Aug 28 #Javascript
JS实现图片手风琴效果
Apr 17 #Javascript
vue服务端渲染的实例代码
Aug 28 #Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
Aug 28 #jQuery
使用react-router4.0实现重定向和404功能的方法
Aug 28 #Javascript
vue.js路由跳转详解
Aug 28 #Javascript
jQuery Collapse1.1.0折叠插件简单使用
Aug 28 #jQuery
You might like
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
PHP与SQL注入攻击[二]
2007/04/17 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
10个简化PHP开发的工具
2014/12/25 PHP
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
2017/02/28 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
浅谈JS日期(Date)处理函数
2014/12/07 Javascript
javascript检查某个元素在数组中的索引值
2016/03/30 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
2016/11/24 Javascript
BootStrap中
2016/12/10 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
原生JS利用transform实现banner的无限滚动示例代码
2020/06/15 Javascript
python获取网页状态码示例
2014/03/30 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
对pytorch中的梯度更新方法详解
2019/08/20 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
python程序输出无内容的解决方式
2020/04/09 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
详解CSS3中常用的样式【基本文本和字体样式】
2020/10/20 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
比赛口号大全
2014/06/10 职场文书
优秀三好学生事迹材料
2014/08/31 职场文书
2015年生产车间工作总结
2015/04/22 职场文书
选对餐饮营销策略,营业额才会上涨
2019/08/27 职场文书