首页 > 其他分享 >Vue学习笔记之Vue文件书写规范

Vue学习笔记之Vue文件书写规范

时间:2022-10-26 15:58:30浏览次数:91  
标签:Vue 1.2 书写 props 笔记 模块 标签 页面 属性

0x00 概述

本文转载,原文

 

0x01 template模块

1.1 <template> 标签上不要写多余的属性(默认就是以 html 来解析)

<!-- Not recommended -->
<template lang="html"></template>
<!-- Recommended -->
<template></template>

1.2 template 里 html 标签上的属性书写规则

1.2.1 超过一个属性时,属性换行对齐;

1.2.2 v-xx指令放最前,自有属性放最后;

<!-- Not recommended -->
<input type="text" class="hf-input" placeholder="请输入验证码" v-model="form.imageCode" />
<!-- Recommended -->
<input
  v-model="form.imageCode"
  type="text"
  class="hf-input"
  placeholder="请输入验证码"
/>

1.2.3 v-xx指令排序规则,控制显示 -> 控制循环 -> v-bind属性 -> v-on事件绑定;

v-if / v-show -> v-for -> v-bind:text... -> v-on:click...
<!-- Recommended -->
<ul v-if="todos.length > 0">
    <li
      is="todo-item"
      v-for="(todo, index) in todos"
      v-bind:key="todo.id"
      v-bind:title="todo.title"
      v-on:remove="todos.splice(index, 1)"
    ></li>
  </ul>

1.2.4  当v-ifv-for在同一个标签上时,记得v-if的权重高于v-for,会在每个标签上做判断,确定这是你真正的意图?

1.2.5 v-for时,记得为每项提供一个唯一 <key> 属性;

1.2.6 非不得已,请不要写html标签上直接写style内联样式!


1.3 在大结构块时,加入合适的注释标签,并保持良好的层级缩进;

<div>
  <!-- “导入”组件 -->
  <div>
    xxx
  </div>
  <!-- “导入”组件/ -->
  <!-- 搜索框 -->
  <div>
     xxx
  </div>
  <!-- 搜索框/ -->
</div>

 

0x02 script模块

2.1 import 放在最顶部,并省略掉 .js.json 和 .vue 后缀(已在webpack的resolve.extensions中做了配置)

<!-- Not recommended -->
import mockData from '@/mockdata/userMock.js'
<!-- Recommended -->
import mockData from '@/mockdata/userMock'

2.2 export 对象中属性定义顺序

name 当前模块名字
components 便于查找引用了哪些组件(单个换行,以,结尾
<!-- Recommended -->
components: {
  norecord,
  TimePicker,
},

 props 可接受的从父组件传递过来的参数列表

  1. props 值必须为对象;
  2. 如果是必传项,要设置 required:true
  3. 如果有默认值(最好都有默认值),要设置 default 的值;
  4. 为 props 的每个字段添加注释,方便后期维护
<!-- Recommended -->
props: {
  // 学生数量
  stuCount: Number,
  // 是否正在加载(带有默认值)
  isLoading: {
    type: Boolean,
    default: false,
  },
  // 是否正在创建(如果是必传项)
  isCreating: {
    type: Boolean,
    required: true,
    default: false,
  },
},
<!--

data 记得是一个 function,保证每个实例可以维护一份被返回对象的独立的拷贝
computed 计算属性
watch 监听器
filters 过滤器
directives 指令
mixins 混入
methods 方法

-->
  1. 方法按页面结构从上至下开始定义;
  2. 属于某一个功能项的尽量放在一起,并加上此功能项的起止注释;
  3. 页面初始化方法写在最后;
  4. 公用方法写在页面初始化方法前,页面其他功能项方法后;
<!-- Recommended -->
methods: {
    // 添加课程
    addClass() {

    },
    // 删除课程
    delClass() {

    },

    /** 上传模块的功能 start */
    // 上传成功
    uploadSuc() {

    },
    // 上传失败
    uploadFail() {
        
    }, 
    /** 上传模块的功能 end */

    /** 共用方法 start */
    // 转换成树结构
    convertToTree() {

    },
    // 表单校验
    checkForm() {

    },
    /** 共用方法 end */

    // 初始化一些信息
    init() {

    },
},
 created/mounted/updated 等各类生命周期函数
<!-- Recommended -->
methods: {
    
},
/** 生命周期勾子函数 start */
beforeCreated() {

},
created() {

},
mounted() {

},
/** 生命周期勾子函数 end */

 

0x03 style模块

  1. @import 写在最前;
  2. 样式书写顺序与页面结构一致;
  3. 嵌套层级最多请不要超过3层;
  4. 慎重考虑是否添加 scoped 属性。

 

标签:Vue,1.2,书写,props,笔记,模块,标签,页面,属性
From: https://www.cnblogs.com/JetpropelledSnake/p/16828683.html

相关文章

  • Vue3-CompositionAPI-响应式基础
    一、响应式基础前提:你会使用setup函数或<scriptsetup>语法1.reactive我们可以使用reactive()函数创建一个响应式对象或数组:import{reactive}from'vue'c......
  • 麒麟系统开发笔记(九):在国产麒麟系统上搭建宇视摄像头SDK基础环境Demo
    前言  国产麒麟系统开发上,使用宇视摄像头,本篇使用宇视官网的提供的SDK,搭建基础的国产系统上宇视摄像头SDK开发化境Demo。<br>效果演示  <br>宇视SDK下载  官方......
  • 管理学(第一课)笔记
    管理学(第一课)笔记自我介绍:分值介绍:平时分50%;平时分(40%MOOC+30%作业+20%课堂表现+10%考勤+加分);课程介绍:管理学是什么:用最少的人最最多的事情。知识体系:计划+决策、组织、领导......
  • 会计学(第二课)笔记
    会计学(第二课)笔记前言会计学内容没管理学好学。知识好零散,没有思维导图。教材上的重点不突出,猛地一下还找不到知识点。但还是需要提前学,走在前头,才不怕掉了链子跟不上,被滚雪......
  • 管理学(第三课)笔记
    管理学(第三课)笔记前言由于管理学这门课学习难度较低,偏重理解记忆,无特别大的逻辑计算部分。所以管理学这门课我不作更多的展开,以后的课堂笔记不会花过多的精力。​​管理学(第......
  • 微观经济学(第二课)笔记
    微观经济学(第二课)笔记教材:《微观经济学》张雪峰著(第二版)教师:张雪峰,毕业于清华大学经济管理学院,获数量经济学博士学位。主要研究领域是博弈论与机制设计、计量经济分析。前言......
  • vue 利用父组件实现子组件一调用子组件二的方法
    在父组件import引入子组件<collapseOptionref="collapse"></collapseOption><tipsDialog:show="isShow":msg="msg"></tipsDialog>......
  • 用户数据分析与最佳实践以手游为例|青训营笔记
    ​一、为什么要做数据分析在企业竞争越来越激烈,获客成本越来越高的背景下,如何高效地优化产品和精细化投放运营是当前企业竞争的关键,而用户数据分析正是我们保持此竞争力的重......
  • UE4学习笔记12——【蓝图】类型转换,自定义事件(比较粗略,看看其他资料)
    P36.什么是蓝图通信和自定义事件P37.什么是类型转换P38.创建自定义事件+设置角色移动速度P39.调用自定义事件+实现触发加速P36.(这一大节课要实现的功能:角色到达......
  • vue源码分析-v-model的本质
    双向数据绑定这个概念或者大家并不陌生,视图影响数据,数据同样影响视图,两者间有双向依赖的关系。在响应式系统构建的上,中,下篇我已经对数据影响视图的原理详细阐述清楚了。而......