vue的常用组件操作方法应用分析


Posted in Javascript onApril 13, 2018

项目技术:

webpack + vue + element + axois (vue-resource) + less-loader+ ...

vue的操作的方法案例:

1.数组数据还未获取到,做出预加载的动画

<el-carousel :interval="3000" type="card" height="200px" class="common-mt-md">
   <el-carousel-item v-for="item in movieArr" :key="item.id" class="text-center">
    <img v-bind:src="item.images.small" alt="电影封面" class="ticket-index-movie-img">
   </el-carousel-item>// 实际显示的内容-跑马灯
   <div v-if="!movieArr.length" class="ticket-index-movie-loading">
    <span class="el-icon-loading "></span>
   </div>// 当 movirArr的数组为空的时候,做出的预加载 loading 
</el-carousel>

2. 按钮状态的判断,按钮能不能点的问题

<p v-if="!multipleSelection.length">
  <el-button type="success" round disabled>导出</el-button>
</p><!-- 不能点, 判断数组为空 -->
<p v-else>
  <el-button type="success" round >导出</el-button>
</p><!-- 可以点, 判断数组为不为空 -->

3.像jquery 一样,追加dom (vue 是以数据为导向的,应该摆脱jquery的 dom的繁杂操作)

<el-form-item label="时间" prop="name">
  <el-input v-model="ruleForm.name"></el-input>//绑定模型,检测输入的格式
  <span class="el-icon-plus ticket-manage-timeinput" @click="addTime(this)"></span>//绑定方法,增加dom的操作
 </el-form-item> 
<el-form-item label="时间" prop="name" v-for="item in timeArr" :key='item.id'>  //timeArr数组与数据就渲染下面的dom,没有就不显示
<el-input v-model="ruleForm.name"></el-input> 

<span class="el-icon-minus ticket-manage-timeinput" @click="minusTime(this)"></span> 
</el-form-item>

js:

相当于jq 中的 dom 字符串

timeInputString: '<el-input v-model="ruleForm.name"></el-input><span class="el-icon-minus"></span>'

原生的js 往数组里压入和弹出 数据(抓数组的长度),因为vue的是以数据驱动,以数据判断,该不该渲染dom

addTime () {
 this.timeArr.push('str')
 },
 minusTime () {
 this.timeArr.shift('str')
 }

4. 追加class , 场景 在循环某个列表时候,某个列表有class,绑定一个方法,可以支持穿参数

dom

<li v-for="section in item.sections" :key='section.id' @click="hideParMask" :class="getSectionId(section.id)">
 <router-link :to="{ name: 'learning', params: { sectionId: section.id}, query: { courseId: courseId}}" >
   <span>{{item.orderInCourse}}.{{section.sectionNumber}}</span>
   <span>{{section.name}}</span>
 </router-link>
</li>

js

getSectionId (sectionId) {
 return {
  active: this.$route.params.sectionId === sectionId,
 }
}

5.子->父组件的通信,vue.$emit vue.on

子组件:

getSectionId (sectionId) {
 return {
  active: this.$route.params.sectionId === sectionId,
 }
}

父组件:

dom

<v-child :courseId="courseId" v-on:receiveTitle="receiveTitle"></v-child>

js

methods: {
 receiveTitle (name) {
  this.titleName = name; // titleName 就是 **@课程
 }
}

 总结套路: 子组件使用函数(事件)给父组件传递 receiveTitle 属性,然后父组件监测这个属性,给这个属性绑定方法 receiveTitle,方法传参数,这个参数就是 要传递的 值

6.父-> 子

父组件:

dom:

<course-tab :courseList = courseList ></course-tab>

js:

courseList().then(res => {
 this.courseList = res.data.courses;
 }).catch( err => {
 console.log(err)
});

子组件:

props: {
  courseList: {
   type: Array
  }
 }

总结套路:父组件将变量传到子组件,需要在子组件标签上绑定这个变量,然后子组件就可以在props 里接受这个变量

 7.错误路由的处理,重定向, 在router里添加一个路由信息

{
  path: '*',
  redirect: '/'
}

这里是重新定向到首页,也可以单独做一个 404页面,重定向到这个页面

编程式导航里面,

router.push({ path: 'login-regist' })  // 如果这样写的话,会寻找路由最近的 / 然后在后面直接拼接login-regist;
为了防止在多级嵌套路由里面出现bug ,应该写全路由的全部信息,包括 /
router.push({ path: '/login-regist' })

8. dom 里拼接css

<div class="img" :style="{background: 'url(' + item.logoFileURL + ')'}"></div>

9. 监听滚动事件

data () {
  return {
   scrolled: false,

show: true
  }
},
methods: {
  handleScroll () {
   this.scrolled = window.scrollY > 0;
   if (this.scrolled) {
    this.show = false;
   }
  }
 },
 mounted () {
  window.addEventListener('scroll', this.handleScroll);
 }

10.监听输入框输入值的变化

@input="search",

监听 element-UI 的<el-input  的方法,

<el-input v-model="input" @keyup.enter.native="add" placeholder="请输入内容" ></el-input>

总结

以上所述是小编给大家介绍的vue的常用组件操作方法应用分析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
jquery实现通用版鼠标经过淡入淡出效果
Jun 15 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
Apr 14 Javascript
JavaScript数组去重的3种方法和代码实例
Jul 01 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
对象题目的一个坑 理解Javascript对象
Dec 22 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 Javascript
原生JS实现圆环拖拽效果
Apr 07 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
Sep 19 Javascript
vue项目打包部署_nginx代理访问方法详解
Sep 20 Javascript
简单的vuex 的使用案例笔记
Apr 13 #Javascript
angular实现页面打印局部功能的思考与方法
Apr 13 #Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
Apr 13 #Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 #Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 #Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
Apr 13 #Javascript
如何编写一个d.ts文件的步骤详解
Apr 13 #Javascript
You might like
PHP实现的sqlite数据库连接类
2014/12/12 PHP
跨浏览器PHP下载文件名中的中文乱码问题解决方法
2015/03/05 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
Aster vs Newbee BO3 第二场2.18
2021/03/10 DOTA
JavaScript入门学习书籍推荐
2008/06/12 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
JavaScript极简入门教程(三):数组
2014/10/25 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
2016/06/08 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
SpringMVC+bootstrap table实例详解
2017/06/02 Javascript
JS中关于正则的巧妙操作
2017/08/31 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
node实现mock-plugin中间件的方法
2019/12/25 Javascript
Python函数嵌套实例
2014/09/23 Python
在django中图片上传的格式校验及大小方法
2019/07/28 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
中科软测试工程师面试题
2012/06/16 面试题
机械工程师的岗位职责
2013/11/17 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
出售房屋委托书范本
2014/09/24 职场文书
工程部岗位职责范本
2015/04/11 职场文书
工程催款通知书
2015/04/17 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python