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 相关文章推荐
Javascript中eval函数的使用方法与示例
Apr 09 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
Feb 01 Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 Javascript
第五篇Bootstrap 排版
Jun 21 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
js实现可以点击收缩或张开的悬浮窗
Sep 18 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
Dec 20 Javascript
vue+php实现的微博留言功能示例
Mar 16 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
Vue 封装防刷新考试倒计时组件的实现
Jun 05 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
php curl基本操作详解
2013/07/23 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
Jquery 复选框取值兼容FF和IE8(测试有效)
2013/10/29 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
每天一篇javascript学习小结(面向对象编程)
2015/11/20 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
js绑定事件和解绑事件
2017/04/27 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
小程序实现多列选择器
2019/02/15 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
2018/05/18 Python
django使用xadmin的全局配置详解
2019/11/15 Python
python装饰器的特性原理详解
2019/12/25 Python
Python插件机制实现详解
2020/05/04 Python
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
Myholidays美国:在线旅游网站
2019/08/16 全球购物
超市总经理岗位职责
2014/02/02 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
安徽导游词
2015/02/12 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
2016年第十四个公民道德宣传日活动总
2016/04/01 职场文书
2019数学教师下学期工作总结
2019/06/27 职场文书
python如何读取.mtx文件
2021/04/22 Python