vue 相较 上一代web框架JQ有更优秀的开发理念,更快的开发速度(这里可能有些低版本浏览器兼容问题)
可由于历史遗留问题,很难使用vue的全部生态来开发 比如脚手架,
比如我们公司在组织架构上,前端的设计 html css的编写是由一个部门完成的
动态渲染是由另一个部门完成的
导致一个问题,在后端迭代新技术的时候无法要求人家去迭代,所以我们公司还在使用 freemarker 和JSP等相关技术
搞过JAVA开发的都知道 这俩技术有点坑,
(比如 在做一些AJXA渲染移动端上拉加载更多等操作的时候,要同时维护 freemarker和JQ两种代码,冗余不说BUG也不好处理 )
由于公司结构的问题,又很难推进VUE的全部生态,使用脚手架前后端分离开发
如何解决呢,如何提高开发速度了,如何提高效率不加班呢(PS:不加班是我的最终目的~~)
我们可以不使用脚手架,直接进行页面JS的编写,对公共组件进行抽离(这个问题会放在下一次来说)
写了一些了,目前效果不错最起码BUG少了,也不怎么加班了,还有时间学习新东西了,好了先看代码
<script type="text/javascript">
//开发完毕重构抽到单门的JS中并压缩处理
var indexApp = new Vue({
el: '#indexApp', //@1 标记符详情见下
data: {
//@2 标记符详情见下
datas: [],
watchVal:''
},
created:function(){
//@3 标记符详情见下
this.onLoadData();
},
methods:{
//@4 标记符详情见下
onLoadData :function(){
console.log("onLoad")
},
watchFun : function(newVal,oldVal){
console.log("newVal")
console.log("oldVal")
},
eventFun : function(val){
console.log("newVal");
}
},
filters: {
//@5 标记符详情见下
dateFormat : function(val1,val2){
}
},
watch :{
//@6 标记符详情见下
'watchVal':'watchFun'
}
})
</script>
这里只介绍些常用的 基本能解决大部分的日常开发问题,更详细的教程网上很多,可以自行搜一搜
@1:对应需要VUE进行处理的DOM上,不要把ID放在body上,会报错
@2:VUE用来进行数据绑定的,数据对象,在绑定完dom后,我们的主要错做都是在操作这个属性下的值
@3: vue的生命周期钩子很多,这个是比较常用的,其中可以用this.{funName} 来调用 methods里面定义的方法
@4: 用来定义方法的属性,比如可以给生命周期里的回掉来定义方法,可以给watch定义函数,可以定义各种事件的方法等
@5: 这个也很重要,主要是在做循环时对值的处理,因为后端开发人员不会都给你格式化好的,他们懒着呢(给你就行了格式自己处理,别问我怎么知道的),说一下用法
<div v-for="data in datas">
<dl @click="eventFun(data)">
<dt><a href="javascript:void(0)" target="_blank" > {{data[5]}}</a></dt>
<dd><span class="time"> {{data[3] | dateFormat}} </span></dd>
<dd class="text">{{data[2]}}</dd>
</dl>
</div>
注意 {{data[3] | dateFormat}} 这个就是 filters 的用法 其中 dateFormat 的 val1可以获得 data[3]
(PS 感觉很像 linux的管道符 有木有)
这里的 data[3] 得到的是个时间戳(后台就是这么傲娇,我之所以不骂他,因为后台也是我写的~~)
如果要传多个参数怎么办呢,比如我还想获得data[4],通过这俩个值在做一些判断,可以这样
{{data[3] | dateFormat(data[4])}}
这样就可以在dateFormat的 val2 中获得 data[4] 的值的,再有其他的需求依次类推
@6: 这个呢 从字面中就能看出来 是个观察者,观察什么的,观察data属性中的数据的
比如我有个需求,在移动端 对着input 的输入的值,在满足手机号的正则的时候将下方的按钮有不可用变成可用
注意是移动端,有兴趣的可以试试,能做不好做
如果用VUE就很简单了,
‘watchVal’:’watchFun’ //data中的 watchVal 在改变的时候会调用 methods 中的 watchFun并传进来两个参数
分别是
newVal 第一个 改变之后的数据
oldVal 第二个 改变之前的数据
如果要满足上面的需求 只需要对第一个值做正则就可以了