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 相关文章推荐
prototype 中文参数乱码解决方案
Nov 09 Javascript
JQuery的一些小应用收集
Mar 27 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
Jul 26 Javascript
window.addEventListener来解决让一个js事件执行多个函数
Dec 26 Javascript
javascript级联下拉列表实例代码(自写)
May 10 Javascript
使图片旋转的3种解决方案
Nov 21 Javascript
jquery进行数组遍历如何跳出当前的each循环
Jun 05 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
JS中this上下文对象使用方式
Oct 09 Javascript
使用html+js+css 实现页面轮播图效果(实例讲解)
Sep 21 Javascript
微信小程序合法域名配置方法
May 06 Javascript
Vue通过配置WebSocket并实现群聊功能
Dec 31 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中模拟POST传递数据的两种方法分享
2011/09/16 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
php解析json数据实例
2014/08/19 PHP
windows8.1下Apache+Php+MySQL配置步骤
2015/10/30 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
PHP的PDO预处理语句与存储过程
2019/01/27 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
jquery json 实例代码
2010/12/02 Javascript
Javascript 八进制转义字符(8进制)
2011/04/08 Javascript
再谈javascript原型继承
2014/11/10 Javascript
Vue.js组件使用开发实例教程
2016/11/01 Javascript
Vue.js仿微信聊天窗口展示组件功能
2017/08/11 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
vscode 远程调试python的方法
2017/12/01 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
python SocketServer源码深入解读
2019/09/17 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
Python类及获取对象属性方法解析
2020/06/15 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
一些Solaris面试题
2015/12/22 面试题
迟到检讨书5000字
2014/01/31 职场文书
如何写自我鉴定
2014/03/19 职场文书
演讲稿开场白台词
2014/08/25 职场文书
机关党总支领导班子整改方案
2014/09/20 职场文书
学前班语言教学计划
2015/01/20 职场文书
环卫工作个人总结
2015/03/04 职场文书
学校国庆节活动总结
2015/03/23 职场文书
公务员廉洁从政心得体会
2016/01/19 职场文书
如何通过一篇文章了解Python中的生成器
2022/04/02 Python