项目回顾2-vue的初体验-在已有项目局部使用vue,无须额外配置
当了解到尤大大的vue的时候,就很想在项目里用一下,不过当用了vue cli 创建了一个脚手架之后,感觉现有的项目改造难度太大了,毕竟原来是JQ的。这个项目已经上线,基本功能也完成了,客户提出来后台对项目需要有时间,省市,进度,提交时间的筛选,还有项目名的筛选。后台的同事已经沉溺于其他项目,再拉他回来写api有点麻烦。
于是,我决定把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变化完成后有一个回调,我在这里就可以重新绑定这个插件了。
但说到底这样还是太挫了,但毕竟整个项目以前都是jquery的……于是我决定用vue重写一下这个分页,下次分享给大家我重写分页的心得。
今天就分享到这里啦,水平有限,每一次写都是用了洪荒之力啦,请各位大牛手下留情啦
---------------------------------------------------------------------------------------------------------------------------
版权所有:http://www.cnblogs.com/wzls/ 五木十架
最近在做一个框选拖拉的jQuery插件,还在完善中,https://github.com/lsbrucelincoln/dragS,虽然jQuery插件貌似落伍了,但是毕竟是小菜鸟呀,学习还是有帮助的,之后希望和大家分享制作的心得
项目回顾2-vue的初体验-在已有项目局部使用vue,无须额外配置的更多相关文章
- vue.js——初体验
看到最近很火的vue.js,于是开启了自己人生中首篇翻译之路,才意识到这个纯英文版的的确没有中文的通俗易懂~~~~~~不过, 还是硬着头皮把这篇英文版的博客给翻译完了,希望可以帮助自己的同时也方便别人 ...
- MVC + Vue.js 初体验(实现表单操作)
Vuejs http://cn.vuejs.org/ Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的 ...
- vue.js 初体验— Chrome 插件开发实录
欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:陈纬杰 背景 对于经常和动画开发打交道的开发者对于Animate.css这个动画库不会陌生,它把一些常见 ...
- vue.jsc初体验
Vue 1.安装脚手架 (1)npm install -g vue-cli (2)Vue -v //查看是否安装成功 (3)Vue init webpack name(名称) (4)Npm insta ...
- Laravel 5.4+Vue.js 初体验:Laravel下配置运行Vue.js
生产材料PHP:PHP 5.6+Laravel 5.4:https://github.com/laravel/laravel/releases/Composer:http://getcomposer. ...
- Vue+Vuex初体验
首先: 安装vuex npm install vuex -S 需要有两个组件(HelloWord.vue 和 HelloDemo.vue)[组件自定义] 注册路由 注册store 测试 一.需要有两个 ...
- Python+Flask+Gunicorn 项目实战(一) 从零开始,写一个Markdown解析器 —— 初体验
(一)前言 在开始学习之前,你需要确保你对Python, JavaScript, HTML, Markdown语法有非常基础的了解.项目的源码你可以在 https://github.com/zhu-y ...
- vue.js2.0 自定义组件初体验
理解 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.在有些情况 ...
- vue-cli@3.x初体验之前篇-回顾vue-cli@2.x创建项目的流程
模拟实际工作中的操作,假如新开启了一个vue项目,可以先看看上篇博文中的git操作,新建空仓库vue-demo,并拉取到本地,创建本地dev分支后 1. 全局安装vue-cli yarn global ...
随机推荐
- HDU 1069---背包---Monkey and Banana
HDU 1069 Description A group of researchers are designing an experiment to test the IQ of a monkey. ...
- html 隐藏滚动条
1. html 标签加属性 <html lang="en" class="no-ie" style="overflow:hidden;" ...
- IntelliJ和tomcat中的目录结构
IntelliJ和tomcat中的目录结构 IntelliJ的官网帮助中心:http://www.jetbrains.com/idea/webhelp/getting-help.html pr ...
- SharpGL学习笔记(十四) 材质:十二个材质球
材质颜色 OpenGL用材料对光的红.绿.蓝三原色的反射率来近似定义材料的颜色.象光源一样,材料颜色也分成环境.漫反射和镜面反射成分,它们决定了材料对环境光.漫反射光和镜面反射光的反射程度.在进行光照 ...
- SAP技术相关Tcode
ABAP的常用tcode 开发----------------------------------------------- SE51 屏幕制作 SE91 MESSAGE OBJECT SE80 ...
- 高清HDMI编码器|上海视涛科技
HDMI编码器(E300)简介 HDMI编码器(E300)是上海视涛科技出品的高性能HDMI+VGA编码产品.该HDMI+VGA编码器是上海视涛科技完全自主研发,并适用于VGA.DVI.HDMI等信号 ...
- Searching External Data in SharePoint 2010 Using Business Connectivity Services
from:http://blogs.msdn.com/b/ericwhite/archive/2010/04/28/searching-external-data-in-sharepoint-2010 ...
- SharePoint 2013 JQuery Asset Picket
var b = new AssetPickerConfig(""); b.ClientID = ""; b.DefaultAssetLocation = & ...
- iOS 开发笔记
1,Search Bar 怎样去掉背景的颜色(storyboard里只能设置background颜色,可是发现clear Color无法使用) 2,NSDate使用 3,UTTabviewCell 未 ...
- Objective-C的IO流