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 一段左右两边随屏滚动的代码
Jun 18 Javascript
TBCompressor js代码压缩
Jan 05 Javascript
JS通过相同的name进行表格求和代码
Aug 18 Javascript
js基于cookie方式记住返回页面用法示例
May 27 Javascript
VUE中使用Vue-resource完成交互
Jul 21 Javascript
深入理解React中何时使用箭头函数
Aug 23 Javascript
vue router 配置路由的方法
Jul 26 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
JavaScript类的继承操作实例总结
Dec 20 Javascript
VUE 自定义组件模板的方法详解
Aug 30 Javascript
webpack 动态批量加载文件的实现方法
Mar 19 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
简单的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+ajax登录跳转登录实现思路
2016/07/31 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
jQuery插件原来如此简单 jQuery插件的机制及实战
2012/02/07 Javascript
jQuery当鼠标悬停时放大图片的效果实例
2013/07/03 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
jquery获取一组checkbox的值(实例代码)
2013/11/04 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
javascript制作2048游戏
2015/03/30 Javascript
SWFObject基本用法实例分析
2015/07/20 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
onmouseover事件和onmouseout事件全面理解
2016/08/15 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
2017/04/19 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python抓取最新博客内容并生成Rss
2015/05/17 Python
Django框架中处理URLconf中特定的URL的方法
2015/07/20 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python实现祝福弹窗效果
2019/04/07 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
jupyter note 实现将数据保存为word
2020/04/14 Python
StubHub澳大利亚:购买或出售您的门票
2019/08/01 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
2014年高中班主任工作总结
2014/11/08 职场文书
2014年销售员工作总结
2014/12/01 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
招商银行工作证明
2015/06/17 职场文书
python 开心网和豆瓣日记爬取的小爬虫
2021/05/29 Python