html项目重构为 vue,浅谈vue项目重构技术要点和总结

这篇文章主要为大家详细介绍了浅谈vue项目重构技术要点和总结,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧!

前言

最近太忙了,博客好久没有更新了。今天忙里偷闲,简单总结一下最近vue项目重构的一些技术要点。

vue数据更新, 视图未更新

这个问题我们经常会遇到,一般是vue数据赋值的时候,vue数据变化了,但是视图没有更新。这个不算是项目重构的技术要点,也和大家分享一下vue2.0通常的解决方案吧!

解决方案如下:

1、通过vue.set方式赋值

代码如下:

Vue.set(数据源, key, newValue)

2、 通过Array.prototype.splice方法

数据源.splice(indexOfItem, 1, newValue)

3、修改数据的长度

数据源.splice(newLength)

4、变异方法

Vue.js 包装了被观察数组的变异方法,故它们能触发视图更新。被包装的方法有:

代码如下:

push()

pop()

shift()

unshift()

splice()

sort()

reverse()

prop 对象数组应用

在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组, 在子组件内部改变它会影响父组件的状态 。利用这一点,我们在子组件中改变prop数组或者对象,父组件以及所有应用到prop中数据的地方都会变化。我之前写过一篇js深拷贝和浅拷贝的文章,感兴趣的去看下,其实,原理是一致的。

案例如下:

代码如下:

export default {

components: {

},

data() {

},

props: {

itemData: Object

},

methods: {

}

};

所有应用到itemData的地方都会变化!

上面这种改变prop,Vue 不会在控制台给出警告,假如我们完全改变或者赋值prop,控制台会发出警告!引用官方给出的解决方案如下:

1、定义一个局部变量,并用 prop 的值初始化它:

代码如下:

props: ['initialCounter'],

data: function () {

return { counter: this.initialCounter }

}

2、定义一个计算属性,处理 prop 的值并返回:

代码如下:

props: ['size'],

computed: {

normalizedSize: function () {

return this.size.trim().toLowerCase()

}

}

v-model 的一些坑

其实v-model和sync都是一些语法糖,我之前有文章介绍过,官网也能找到类似的案例!

v-model 数据有时候是undefined的时候,不会报错,所以,一定要注意,v-model不能是undefined,否则有些莫名的问题!

重构-动态组件的创建

有时候我们有很多类似的组件,只有一点点地方不一样,我们可以把这样的类似组件写到配置文件中,动态创建和引用组件

方法一:component 和is配合使用

通过使用保留的 元素,并对其 is 特性进行动态绑定,你可以在同一个挂载点动态切换多个组件:

代码如下:

var vm = new Vue({

el: '#example',

data: {

currentView: 'home'

},

components: {

home: { /* ... */ },

posts: { /* ... */ },

archive: { /* ... */ }

}

})

方法二:通过render方法创建

代码如下:

export default {

data() {

return {

};

},

render: function(createElement) {

let _type = bi.chart.data.type;

let _attr = bi.chart.components[_type]["attr"];

return createElement(_attr, {

props: {

}

});

}

};

bi.chart.components[_type]["attr"]这个是在配置文件中动态配置的,type点击的时候会改变,会取不同type下面的attr属性!

公共属性抽离

我们在项目中,经常会用很多状态或者数据,我们可以把很多公共数据抽离出来,放到一个对象中,后面我们可以监听这个数据对象变化。进行数据保存或者获取。

代码如下:

c: {

handler: function (val, oldVal) { /* ... */ },

deep: true

},

// 该回调将会在侦听开始之后被立即调用

d: {

handler: function (val, oldVal) { /* ... */ },

immediate: true

},

可以利用上面深度监听。假如初始化的时候要立即执行,我们可以用立即执行监听!

require动态加载依赖

我们可以利用require同步特性,在代码中动态加载依赖,例如下面echart主题,我们可以点击切换的时候,动态加载!

代码如下:

require("echarts/theme/"+ data.theme);

import加载要放到头部,初始化的时候,可以把默认主题用import加载进来!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持512笔记。

注:关于浅谈vue项目重构技术要点和总结的内容就先介绍到这里,更多相关文章的可以留意512笔记的其他信息。

关键词:vue.js

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当对Vue2项目进行重构Vue3时,需要注意以下几点: 1. 路由语法不兼容:Vue2和Vue3的路由语法是不同的,直接复制Vue2的路由到Vue3项目中会导致报错。需要重新配置路由,按照Vue3的路由语法进行修改。 2. 子菜单问题:在Vue2中,子菜单可能是连着写的,但在Vue3中,需要在子菜单的名称之间加一个"-"才能正确显示下拉列表。所以在重构Vue3项目时,需要注意调整子菜单的命名格式。 3. 页面显示问题:在将Vue2项目迁移到Vue3项目时,可能会遇到页面不显示的情况。首先需要检查路由配置,确保路由设置正确。然后逐个检查各个页面的语法,确保没有错误。如果发现错误,需要及时进行修改,以使页面能够正常显示。 总结: 在重构Vue2项目Vue3时,需要重新配置路由语法,注意子菜单的命名格式,以及检查并修改页面的语法错误,以确保项目能够正常显示。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Vue2.0项目重构Vue3.0流程](https://blog.csdn.net/Asrty/article/details/129049701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值