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 相关文章推荐
基于jquery的web页面日期格式化插件
Nov 15 Javascript
new Date()问题在ie8下面的处理方法
Jul 31 Javascript
浅析js预加载/延迟加载
Sep 25 Javascript
prototype框架中美元符号$用法分析
Jan 22 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
js中作用域的实例解析
Mar 16 Javascript
select自定义小三角样式代码(实用总结)
Aug 18 Javascript
bootstrap实现二级下拉菜单效果
Nov 23 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
Dec 18 Javascript
swiper自定义分页器使用方法详解
Sep 14 Javascript
动态Axios的配置步骤详解
Jan 12 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 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 mysql数据库操作类
2008/06/04 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
angular源码学习第一篇 setupModuleLoader方法
2016/10/20 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
利用pyecharts读取csv并进行数据统计可视化的实现
2020/04/17 Python
python反扒机制的5种解决方法
2021/02/06 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
为什么需要版本控制
2016/10/28 面试题
某同学的自我鉴定范文
2013/12/26 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
产品开发计划书
2014/04/27 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
话题作文之自信作文
2019/11/15 职场文书
mysql left join快速转inner join的过程
2021/06/30 MySQL
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android