如何解决vue与传统jquery插件冲突


Posted in Javascript onMarch 20, 2017

本篇文章主要介绍了如何解决vue与传统jquery插件冲突,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

比如基于jquery的select2插件,在vue下单独用有很多问题,其实对于这类插件,可以用vue的自定义指令和组件来包装,解决冲突的问题。引用官方vue1.0和2.0的两个例子,学习一下。

 例子1.0  例子2.0

大功告成。说说基于vue1的,对于下拉单选,用vue官方的例子即可,对于多选,看下面自己写的,核心是用指令对象的el、vm等获取被select2改变后的select下拉列表的相应对象,关键点是用jquery包装原生元素后用.val()获取多选值。

<body>
  <div id="el">
   <p>Selected: {{selected}}</p>
   <select v-select3="selected" multiple class="app1" >
    <option value="0">default</option>
    <option v-for="o in options" :value="o.id">{{ o.text }}</option>
   </select>
    
    <p>Selected: {{market}}</p>
   <select v-select3="market" multiple class="app2" >
    <option value="0">default</option>
    <option v-for="o in markets" :value="o.id">{{ o.text }}</option>
   </select>
  </div>
  <script>
    Vue.directive('select3', {
     twoWay: true,
     priority: 1000,

     params: ['options'],
      
     bind: function () {
      var self = this;
      $(this.el)
       .select2()
       .on('change', function () {
        self.set($(self.el).val());
        console.log($(self.el).val());
        if ( self.expression == 'selected') {
          self.vm.market = [];
        }

       })
     },
     update: function (value) {
      
      $(this.el).val(value).trigger('change')
     },
     unbind: function () {
      $(this.el).off().select2('destroy')
     }
    })

    var vm = new Vue({
     el: '#el',
     data: {
      selected: 0,
      market: '',
      options: [
       { id: 1, text: 'hello' },
       { id: 2, text: 'what' }
      ],
      markets: [
        { id: 1, text: '文山二手车' },
        { id: 2, text: '小哥二手车' }
      ]
     }
    });
    setTimeout(function () {
     vm.market = 0;
    }, 0);
  </script>
</body>

另外,在插入默认值的时候,注意做一个异步插入,因为vue更新页面是异步的,这里做了一个setTimeout( , 0)。

另外在单页里,考虑在SSpa的show的时候,设置一状态位vm.isInit,表示若是初始化默认选项,判断onchange里是否触发相关改变的时候不重新设置一些值的清空以及获取 。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 遮照层实现代码
Mar 31 Javascript
最新28个很棒的jQuery 教程
May 28 Javascript
JS中令人发指的valueOf方法介绍
Feb 22 Javascript
javascript自启动函数的问题探讨
Oct 05 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
Dec 02 Javascript
javascript中FOREACH数组方法使用示例
Mar 01 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
vue中的event bus非父子组件通信解析
Oct 27 Javascript
JS的函数调用栈stack size的计算方法
Jun 24 Javascript
Javascript中弹窗confirm与prompt的区别
Oct 26 Javascript
使用Vant完成Dialog弹框案例
Nov 11 Javascript
Vue.js路由vue-router使用方法详解
Mar 20 #Javascript
Vue插件写、用详解(附demo)
Mar 20 #Javascript
详解vue事件对象、冒泡、阻止默认行为
Mar 20 #Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 #Javascript
vue.js事件处理器是什么
Mar 20 #Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 #Javascript
Vue.js基础学习之class与样式绑定
Mar 20 #Javascript
You might like
AM/FM收音机的安装与调试
2021/03/02 无线电
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
[原创]php求圆周率的简单实现方法
2016/05/30 PHP
PHP实现原生态图片上传封装类方法
2016/11/08 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
js控制页面控件隐藏显示的两种方法介绍
2013/10/09 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
获取中文字符串的实际长度代码
2014/06/05 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
Bootstrap优化站点资源、响应式图片、传送带使用详解3
2016/10/14 Javascript
Angular.JS中指令ng-if的注意事项小结
2017/06/21 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
Python获取当前时间的方法
2014/01/14 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python自动化生成IOS的图标
2018/11/13 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
医科大学生毕业的自我评价分享
2013/11/12 职场文书
校园安全检查制度
2014/02/03 职场文书
毕业生就业意向书
2014/04/01 职场文书
预备党员综合考察材料
2014/05/31 职场文书
财政局党的群众路线教育实践活动整改方案
2014/09/21 职场文书
西柏坡导游词
2015/02/05 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
小学感恩节活动总结
2015/03/24 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Python编程编写完善的命令行工具
2021/09/15 Python
Python办公自动化解决world文件批量转换
2021/09/15 Python