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 相关文章推荐
js动态给table添加/删除tr的方法
Aug 02 Javascript
jquery indexOf使用方法
Aug 19 Javascript
jQuery中$.each使用详解
Jan 29 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
Dec 06 Javascript
JS实现六位字符密码输入器功能
Aug 19 Javascript
jQuery Chosen通用初始化
Mar 07 Javascript
JS中cookie的使用及缺点讲解
May 13 Javascript
基于JS实现一个随机生成验证码功能
May 29 Javascript
了解JavaScript中let语句
May 30 Javascript
Javascript中window.name属性详解
Nov 19 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
杏林同学录(一)
2006/10/09 PHP
PHP 验证码不显示只有一个小红叉的解决方法
2013/09/30 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
封装好的省市地区联动控件附下载
2007/08/13 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
jQuery 学习第七课 扩展jQuery的功能 插件开发
2010/05/17 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
js post提交调用方法
2014/02/12 Javascript
jquery实现动态画圆
2014/12/04 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
JS排序方法(sort,bubble,select,insert)代码汇总
2016/01/30 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
浅谈箭头函数写法在ReactJs中的使用
2017/08/22 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
js实现点击生成随机div
2020/01/16 Javascript
Python之自动获取公网IP的实例讲解
2017/10/01 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
python实现证件照换底功能
2019/08/20 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
Python网页解析器使用实例详解
2020/05/30 Python
在python中使用pyspark读写Hive数据操作
2020/06/06 Python
Python调用Redis的示例代码
2020/11/24 Python
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
《理想的风筝》教学反思
2014/04/11 职场文书
防灾减灾活动总结
2014/08/30 职场文书
对外汉语教师推荐信
2015/03/27 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
利用python进行数据加载
2021/06/20 Python
pt-archiver 主键自增
2022/04/26 MySQL