Vue js 通用编码标准

vue js 通用编码标准

以下是 vue.js 的其他好的和坏的做法:

通用编码标准

避免魔法数字和字符串:对重复使用或具有特殊含义的值使用常量。

   // good   const max_items = 10;   function additem(item) {     if (items.length < max_items) {       items.push(item);     }   }   // bad   function additem(item) {     if (items.length < 10) {       items.push(item);     }   }

登录后复制高效使用 v-for:使用 v-for 时,始终提供唯一的键来优化渲染。

      
{{ item.name }}
{{ item.name }}

登录后复制避免内联样式:更喜欢使用 css 类而不是内联样式,以获得更好的可维护性。

      
{{ item.name }}
.item { color: red; }
{{ item.name }}

登录后复制

组件实践

组件可重用性:设计可通过 props 重用和配置的组件。

   // good      // bad   

登录后复制道具验证:始终使用类型和必需的属性来验证 props。

   // good   props: {     title: {       type: string,       required: true     },     age: {       type: number,       default: 0     }   }   // bad   props: {     title: string,     age: number   }

登录后复制避免长方法:将长方法分解为更小、更易于管理的方法。

   // good   methods: {     fetchdata() {       this.fetchuserdata();       this.fetchpostsdata();     },     async fetchuserdata() { ... },     async fetchpostsdata() { ... }   }   // bad   methods: {     async fetchdata() {       const userresponse = await fetch('api/user');       this.user = await userresponse.json();       const postsresponse = await fetch('api/posts');       this.posts = await postsresponse.json();     }   }

登录后复制避免具有副作用的计算属性:计算属性应该用于纯计算而不是副作用。

   // good   computed: {     fullname() {       return `${this.firstname} ${this.lastname}`;     }   }   // bad   computed: {     fetchdata() {       // side effect: fetch data inside a computed property       this.fetchuserdata();       return this.user;     }   }

登录后复制

模板实践

使用 v-show 与 v-if:使用 v-show 来切换可见性,而无需从 dom 添加/删除元素,并在有条件渲染元素时使用 v-if。

      
content
content
content

登录后复制避免使用大模板:保持模板干净、小;如果它们变得太大,请将它们分解成更小的组件。

           
...
...
...

登录后复制

状态管理实践

使用vuex进行状态管理:使用 vuex 管理多个组件的复杂状态。

   // good   // store.js   export default new vuex.store({     state: { user: {} },     mutations: {       setuser(state, user) {         state.user = user;       }     },     actions: {       async fetchuser({ commit }) {         const user = await fetchuserdata();         commit('setuser', user);       }     }   });

登录后复制避免组件中的直接状态突变:使用突变来修改 vuex 状态,而不是直接突变组件中的状态。

   // good   methods: {     updateuser() {       this.$store.commit('setuser', newuser);     }   }   // bad   methods: {     updateuser() {       this.$store.state.user = newuser; // direct mutation     }   }

登录后复制

错误处理和调试

全局错误处理:使用 vue 的全局错误处理程序来捕获和处理错误。

   vue.config.errorhandler = function (err, vm, info) {     console.error('vue error:', err);   };

登录后复制提供用户反馈:发生错误时向用户提供清晰的反馈。

   // Good   methods: {     async fetchData() {       try {         const data = await fetchData();         this.data = data;       } catch (error) {         this.errorMessage = 'Failed to load data. Please try again.';       }     }   }   // Bad   methods: {     async fetchData() {       try {         this.data = await fetchData();       } catch (error) {         console.error('Error fetching data:', error);       }     }   }

登录后复制

通过遵循这些额外的实践,您可以进一步提高 vue.js 应用程序的质量、可维护性和效率。

以上就是Vue js 通用编码标准的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2671916.html

(0)
上一篇 2025年3月7日 13:18:15
下一篇 2025年2月26日 01:59:53

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用 HMPL 减少客户端上的 javascript 文件大小?

    大家好!在这篇文章中,我想告诉你如何通过 hmpl 这样的模板语言来多次减小 javascript 文件的大小。 文章中出现的技术方法并不新鲜,但今天仍然足够流行,值得讨论。 减小 javascript 文件的大小将使页面在客户端上加载得更…

    2025年3月7日
    200
  • 4 年内掌握 Tailwind CSS 与流行 JavaScript 框架的集成

    您准备好增强您的 web 开发工作流程了吗?别再犹豫了!在这份综合指南中,我们将引导您完成将 tailwind css 与四个最热门的 javascript 框架无缝集成的过程:react、angular、next.js 和 nuxt.js…

    2025年3月7日 编程技术
    200
  • 使用 AWS Bedrock 将 GenAI 添加到 Angular 应用程序

    将人工智能集成到 web 应用程序中已经变得越来越普遍。 aws bedrock 提供了一个强大的平台来访问和利用基础模型 (fm) 来构建生成式 ai 应用程序。本文将指导您使用 aws bedrock 将 ai 功能集成到 angula…

    2025年3月7日
    200
  • Vue 和 Tailwind 管理框架

    github |网站 添加了一些“必须”的功能,并将在此分享。 我们将非常感谢您在评论中提出的建议! 预制登录: 立即学习“前端免费学习笔记(深入)”; 用户管理: Chat-GPT 文本补全插件: 每个操作的审核日志(不包括密码哈希等敏感…

    2025年3月7日 编程技术
    200
  • 如何减少客户端的 javascript 文件大小?

    大家好!在这篇文章中,我想告诉你如何通过 hmpl 这样的模板语言来多次减小 javascript 文件的大小。 文章中出现的技术方法并不新鲜,但今天仍然足够流行,值得讨论。 减小 javascript 文件的大小将使页面在客户端上加载得更…

    2025年3月7日
    200
  • JavaScript 初学者简介

    了解 JavaScript: javascript 是一种强大且多功能的编程语言,已成为现代 web 开发不可或缺的一部分。从创建交互式用户界面到处理复杂的后端逻辑,javascript 都能做到。无论您是刚刚入门还是想要加深理解,这篇文章…

    2025年3月7日 编程技术
    200
  • React vs Vue vs Angular:如何选择正确的框架?

    选择正确的框架对于项目的成功至关重要,因为它会影响性能、可扩展性以及与现有系统集成的难易程度。它还会影响开发速度、对功能要求的遵守以及未来更新和支持的难易程度。 反应 React 是一个用于构建用户界面的开源 JavaScript 库,由 …

    2025年3月7日
    200
  • Devto 系列:如何开始编写代码

    选择一种编程语言并学习 决定编程语言非常重要,特别是当您是初学者时。 话虽如此,学习任何东西的关键就是开始。这可能看起来很困难。有一些最受欢迎且适合初学者的选项可供考虑。不过,C、C++、Java 和 Python 是最流行的高级编程语言。…

    2025年3月7日
    200
  • React – 服务器操作

    反应表单动作。 react 引入了新的表单 actions 和相关的钩子来增强原生表单并简化客户端-服务器通信。这些功能使开发人员能够更有效地处理表单提交,从而提高用户体验和代码可维护性。对于react form actions的深入探索,…

    2025年3月7日 编程技术
    200
  • 与 CSS-in-JS 分手

    JS 中的 CSS “css-in-js”是一个从样式组件开始并在 javascript 中定义样式的流程。 样式组件、Emotion、Mantine 等 优点 适用范围小。您可以通过使用 css 模块来缩小 CSS 范围与组件定义在同一位…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论