VUE 老项目改造,常用方法说明

本文介绍了在面临组织架构限制,无法全面采用Vue生态的情况下,如何在现有项目中逐步引入Vue,提升开发效率。文章分享了不使用脚手架,直接编写页面JS,并抽离公共组件的经验。重点讲解了Vue的几个核心概念,如数据绑定、生命周期钩子、方法定义、过滤器和观察者,以及在实际开发中的应用,帮助开发者解决日常开发问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 第二个 改变之前的数据

如果要满足上面的需求 只需要对第一个值做正则就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值