首页 > 网站 > WEB开发 > 正文

在你的新项目中局部使用Vue来提升开发效率

2024-04-27 15:08:39
字体:
来源:转载
供稿:网友

于是,我决定把vue嵌入到现有的项目中,并不使用npm,webpack,gulp等家伙,也就不用配置啦,就像以前使用jquery插件一样。

这样的话就很简单了

<script src="../source/js/vue.js"></script>

只用这样引入vue.js就可以开工啦。

一、最基本的结构是

复制代码
var vm = new Vue({    el: "#mainBody",//绑定根元素    data: {    },    methods: {    }})复制代码

二、在vue的生命周期中,我在compiled里去Ajax获得数据(很挫的还是用的$.ajax),然后赋值给data里的records。然后在methods里写一个用来筛选城市的方法

复制代码
var vm = new Vue({    el: "#mainBody",//绑定根元素    data: {        records: [],//数据源        city: "",        country: "",    },    methods: {        cityFilter: function(data) {            if ((vm.city !== "" && vm.city !== "市" && vm.city !== data.city) ||         (vm.country !== "" && vm.country !== "县(市、区)" && vm.country !== data.country)) {                return false            } else {                return true            }        },    },    compiled: function() {        var self = this;        $.get('/user/getMyEvent.do', function(data) {//通过ajax获得数据源            if (data.code == 200) {                self.records = data.info;                vm.$nextTick(function() {                    TablePage(".qu-table", 10);                })            }        })    }})复制代码

 

<tr v-for="record in records | filterBy cityFilter record  " class="PRocessProgram">                <td class="programName">{{record.eventName}}</td></tr>

三、这样我就可以用v-for循环输出一个列表了,用了filterBy来筛选城市,把单个记录record作为参数传给cityFilter.在这个tr里面,可以将record里的内容通过mustache({{}})直接写进去。

四、这样的话,还需要来监听select的值来更新筛选的条件,也就是data里面的city还有country,这里可以用v-model双向绑定,这样只要select里的值改变,filterBy里的函数

cityFilter的结果就会改变,这样列表就会被更新了。

<select id="s_city" name="s_city" v-model="city"></select>

不过我用这种方式的时候遇到一个问题,就是我的分页插件用的是以前的,dom变化之后,分页插件要重新绑定,这时候就比较麻烦,于是我还是比较不争气的用了jquery的写法

复制代码
    $("#s_city").on('change', function(event) {        vm.$data.city = $(this).val();        vm.$data.country = $("#s_county").val();        Vue.nextTick(function() {            $(".bottom-search").empty();            TablePage(".qu-table", 10);        })    });复制代码

这样修改数据之后,使用nextTick方法,可以在下一次dom变化完成后有一个回调,我在这里就可以重新绑定这个插件了


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表