vue开发-语法和基础流程规范

news2024/11/13 13:03:05

当一个请求发生的时候 后端的扭转流程对标前端的扭转过程

在这里插入图片描述
***vue 中 整体url触发整体流程服务流程:

node 中定义了默认加载 vue.config.js 文件 (vue.config.js 文件名不可更改)-> vue.config.js 中 devServer 绑定了个 ip端口 和资源 -》 然后将资源 交给浏览器

浏览器通过# 来做相对定位〉 走到 route 路由》router 路由用来绑定其他资源页面。〉 将路由页面 放在 如下的div 中

***vue 中 整体加载流程

node 启动。-》加载vue.config.js 〉加载资源(sso匹配等。。。)》tsconfig.json 加载所有静态资源-〉通过heraOpen 加载 main.ts 文件》创建全局VUE 对象〉并且将router,和store 加载到VUE 对象中

从而使得 在浏览器中 可以使用#/相对定位到 router路由的地址 访问路由中的地址

***vue文件中的核心标签

vue 语法

1、views 文件夹下面创建对应业务名的文件夹

2、 建立对应业务操作的.vue 文件 并且 声明如下标签

}

2.1 vue 文件标签解读

}

2.1.1、template 标签中主要写页面的dom文档 页面标签等。代码可参考 ui库 https://mtdui.sankuai.com/mtd/vue/components/input-number

2.1.2、script 标签中 写 数据逻辑 以及 和后端交互逻辑 数据处理逻辑等代码

2.1.3、style 页面的样式 通过选择器来定义template 标签中 页面标签的样式

3、在 router/type 文件夹下方建立一个 ts 文件 用于校验 vue 文件中的实体对象的 规则和合规性 例如: 建立了一个sceneManager.ts 并且书写了如下代码

// 查询场景参数
export interface EventAccessQueryRequest {
admin?: string;
endTime?: number| string;
id?: number;
method?: number;
pageNo?: number;
pageSize?: number;
scene?: string;
source?: string;
//开始时间
startingTime?: number| string;
// 标签
tag?: string;
// 状态 1上线 0下线
valid?: number;
timeRange?: Date[];
group?: [];
}
//查询场景list返回
export interface PageType {
records: EventAccessResponse[];
pageNum: 10;
pageSize: 20 ;
total: number;
}

4、 在vue 的文件中 书写如下实体类

const initSearchData: EventAccessQueryRequest = {
// 结束时间
admin: ‘’,
endTime: ‘’,
scene: ‘’,
source: ‘’,
//开始时间
startingTime: ‘’,
// 标签
tag: ‘’,
// 状态 1上线 0下线
timeRange: [],
pageNo: 1,
pageSize: 20,
group: []
};

5、然后在vue 中可以使用 this. 的方式去调用initSearchData 进行取值和赋值 用于在页面中 渲染后端数据 和 提交给后端数据 或者 前端逻辑交互

6、在router/下找到index.ts

倒入。
import Myadd from ‘@/views/SceneList/myAdd.vue’;

对应的vue 文件
然后添加如下代码

{
path: ‘/myAdd’,
name: ‘myAdd’,
component: Myadd,
},
用于 增加一个新的页面跳转 在路由里面

7 页面初始化方法

7.1、先在 script 标签下面建立一个

import { Vue, Component, Watch, Mixins } from ‘vue-property-decorator’;
import { mapState, mapActions } from ‘vuex’;
export default class MyAdd extends Vue{

}

7.2、添加如下代码

private mounted() {
const { type, id } = this.$route.query;
console.log(“展示type:”,type)
}

7.3 整体代码结构

import { Vue, Component, Watch, Mixins } from ‘vue-property-decorator’;
import { mapState, mapActions } from ‘vuex’;
export default class MyAdd extends Vue{
private mounted() {
const { type, id } = this.$route.query;
console.log(“展示type:”,type)
}
}

7.3.1 代码解读

const { type, id } = this.$route.query;

用于获取页面的queryParam。就是url上面的参数。是通过map的方式存储的

7.4.1、 扩展引入

7.4.1.1、在Vue中,比mounted方法更早触发的方法有以下几个:

beforeCreate:在Vue实例被创建之初,数据观测和事件/生命周期钩子等尚未初始化,此时beforeCreate钩子函数会被调用。

created:在Vue实例创建完成后,数据观测和事件/生命周期钩子已经初始化,但尚未挂载到DOM上,此时created钩子函数会被调用。

beforeMount:在Vue实例即将挂载到DOM上之前,此时beforeMount钩子函数会被调用。在这个阶段,Vue实例的模板编译已经完成,但尚未生成真实的DOM。

这些生命周期钩子函数的触发顺序如下:beforeCreate -> created -> beforeMount -> mounted,也就是说,beforeCreate和created会在mounted之前触发。

需要注意的是,这些生命周期钩子函数的执行时机是自动由Vue框架触发的,不需要手动调用。开发者可以根据自己的需求,在这些钩子函数中执行相应的逻辑操作,异步数据获取、组件初始化等。

7.4.1.2、在Vue中,mounted方法之后会触发以下几个方法:

updated:在Vue实例更新完DOM之后被调用。当数据发生改变,触发重新渲染时,updated钩子函数会被执行。

activated:在使用Vue的组件时,被缓存的组件再次被激活时会触发activated钩子函数。

deactivated:同样,在使用Vue的组件时,被缓存的组件被停用时会触发deactivated钩子函数。

beforeUpdate:在Vue实例更新之前被调用。在数据改变时,beforeUpdate钩子函数会在重新渲染之前被执行。

beforeDestroy:在Vue实例销毁之前被调用。在组件被销毁之前,可以在beforeDestroy钩子函数中执行一些清理操作。

destroyed:在Vue实例销毁之后被调用。在组件被销毁后,destroyed钩子函数会被执行。

这些钩子函数在Vue的生命周期中有特定的执行时机,开发者可以根据需要在这些方法中添加相应的逻辑处理。需要注意的是,这些方法的触发是自动由Vue框架处理的,不需要手动调用。

7.4.1.3、vue 文件中的方法生命周期

beforeCreate:在这个阶段,Vue实例已被创建,但尚未完成数据观测和事件/生命周期钩子等的初始化。此时,Vue实例的data和methods等属性还未被初始化。

created:在这个阶段,Vue实例的数据观测和事件/生命周期钩子等已经初始化完成,但尚未挂载到DOM上。此时,Vue实例的data和methods等属性已经被初始化。

beforeMount:在这个阶段,Vue实例即将被挂载到DOM上。此时,Vue实例的模板已经编译完成,但尚未生成真实的DOM。

mounted:在这个阶段,Vue实例已经被挂载到DOM上,并且可以通过DOM操作和访问DOM元素。此时,Vue实例已经和DOM建立了关联。

beforeUpdate:在这个阶段,Vue实例正在进行重新渲染,即数据发生改变,Vue正在更新DOM。此时,Vue实例的数据已经发生了变化,但DOM还未完成更新。

updated:在这个阶段,Vue实例已完成重新渲染,即数据发生改变,Vue已经更新了DOM。此时,Vue实例的数据和DOM都已经完成了更新。

activated:在使用Vue的组件时,被缓存的组件再次被激活时会触发activated钩子函数。

deactivated:在使用Vue的组件时,被缓存的组件被停用时会触发deactivated钩子函数。

beforeDestroy:在这个阶段,Vue实例即将被销毁。此时,Vue实例还存在,并且可以进行一些清理操作,例如取消订阅、清除定时器等。

destroyed:在这个阶段,Vue实例已经被销毁。此时,Vue实例和DOM的关联已经解除,事件监听和watcher已被移除。

7.4.1.3、vue 文件中自定义方法的加载和销毁 以及什么阶段被初始化和可以被调用以及无法调用的阶段,例:自定义方法 checkSceneDetail()

mounted阶段:在Vue实例挂载到DOM后,可以通过调用this.checkSceneDetail(id)来调用该方法。此时,DOM已经完成渲染,可以执行与DOM相关的操作。

updated阶段:当Vue实例的数据发生变化,导致重新渲染时,在updated生命周期钩子函数中可以调用this.checkSceneDetail(id)来调用该方法。此时,可以在数据更新后执行一些操作。

在其他阶段,无法直接调用private checkSceneDetail(id: number)方法:

在beforeCreate和created阶段,Vue实例和数据还没有完全初始化,无法调用该方法。

在beforeMount阶段,Vue实例的模板已经编译完成,但尚未生成真实的DOM,无法调用该方法。

在beforeUpdate、activated、deactivated、beforeDestroy和destroyed阶段,这些阶段主要用于Vue实例的更新和销毁,不适合直接调用自定义方法。

因此,可以在mounted阶段或在数据变化后的updated阶段调用private checkSceneDetail(id: number)方法。如果您需要在其他阶段执行该方法,则需要根据具体情况进行调整或通过其他方式触发执行。

7.5 必须定义的结构

script 标签中

@Component({
components: {
SelectModal,
}
})
export default class ListAdd extends Vue {
}

8、 发送一个请求到后端

net.scenelist
.queryManageSceneList({ id })
.then((ajaxData: AxiosResponse) => {
const response: ResponseType = ajaxData.data;
if (ajaxData.status === 200 && response.code === 0) {
const row = response.data.records[0];
const slaEntity = this.addInfo.slaEntity;
this.addInfo = formatRequest(row);
if (this.addInfo.slaEntity == null) {
this.addInfo.slaEntity = slaEntity;
}

      console.log(
        'sql----当前查询后台的后台的addinfo 数据',
        JSON.stringify(response.data.records[0])
      );
    } else {
      this.$mtd.message({
        message: response.desc,
        type: 'error',
      });
    }
  })
  .catch((error) => {
    Message({
      message: error.message,
      type: 'error',
    });
  });

8.1.1、 代码解读

在 net 目录下 找到 scenelist 文件 文件中有个default 方法

export default {
xxxxxx,
queryManageSceneList
};

用于定义所有对外暴露的请求方法

写出 queryManageSceneList 对应的方法

export async function queryManageSceneList(params?: EventAccessQueryRequest) {
return await post(‘/hera/api/v1/eventFlow/access/query’, params);
}

请求成功后 获取 records 中的数据 赋予给 全局对象 addInfo

这样 页面就可以根据this.addInfo 来渲染页面 和做逻辑处理了

9.1、 前端做校验

需要 在 对应页面vue 中添加如下代码

9.1.1、 template 标签中 在需要校验的标签中添加如下代码

需要校验的标签

例:
原始标签

账号:

加上校验后

label 为标签的前置文本 会自动加上个红色的 *。就是 * 账号:

prop 为规则引擎。需要自己配置规则

在script 标签中 添加如下代码

private ruleCustom = {

processCode: [
  { required: true, message: '请输入流程编号', trigger: 'blur' },
],

processCode: [{ validator: this.roundConfigDefaultCountDetection }],

};

上述代码中 描述了两种规则定义格式。

第一个简单表达式规则 表示 当失去焦点的时候不可为空

第二个规则 是 输入框的整体规则必须符合 roundConfigDefaultCountDetection 方法中定义的逻辑

10、页面中的一些语法和基础使用
语法

含义

@click="backoute

VUE 中的事件

v-model

dom文档展示的值

v-if

为真则加载dom 为假删除dom

v-for=“item in arr”

循环

:key=“item.mis”

:label=“${item.mis}

:value=“item.mis”

key 渲染坐标的唯一值

label 展示的值

value 实际的值{和后端交互的值}

循环后 item.mis 中的值会转为string

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/988412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

科技资讯|苹果Vision Pro获得被动冷却系统及数字表冠控制界面专利

据patentlyapple报道,美国专利商标局正式授予苹果一项与头戴式设备(Apple Vision Pro)相关的专利11751366,该设备可以提供被动冷却系统,利用光学组件的表面来管理热量,而不会对用户显示的视觉信息产生不利影…

uniGUI使用客户端布局制作工具条

uniGUI使用客户端布局制作工具条 如上图,我想制作一个工具条,上面放四个按钮,每个按钮占工具条25%的宽度。 先放置一个UniContainerPanel,把他视为工具条的容器,然后对他做如下设置: 1.AlignalTop 2.Ali…

【ARM CoreLink 系列 2 -- CCI-400 控制器简介】

文章目录 CCI-400 介绍DVM 机制介绍DVM 消息传输过程TOKEN 机制介绍 下篇文章:ARM CoreLink 系列 3 – CCI-550 控制器介绍 CCI-400 介绍 CCI(Cache Coherent Interconnect)是ARM 中 的Cache一致性控制器。 CCI-400 将 Interconnect 和coh…

【Hello Algorithm】贪心算法

本篇博客介绍: 简单介绍下贪心算法 贪心算法 介绍贪心算法最小字典序的字符串拼接最多会议数切棍子的最小成本IPO灯塔问题 介绍贪心算法 贪心算法是一种极具有自然智慧的算法 它会使用以一种局部最功利的标准来做出一个当前看来最好的选择 如果说我们根据局部最优…

Spring基础及IoC容器的理解

Spring概念: 通常所说的Spring指的是Spring Framewprk(Spring框架),它是一个开源的框架。用一句话概括就是:Spring是包含了众多工具方法的IoC容器。 什么是容器? 容器是用来容纳某种物品的装置,在之前的学习中&…

运动蓝牙耳机哪个品牌好、运动蓝牙耳机推荐

随着健康生活理念的广泛普及,对于很多人来说,运动已经成为他们日常生活不可或缺的重要组成部分。在激情四溢的健身运动中,我们既能够放松身心,减轻工作压力,又能够强健身体,增强免疫力,可谓一举…

代码随想录第31天 | 435. 无重叠区间 ● 763.划分字母区间 ● 56. 合并区间

435. 无重叠区间 /*** param {number[][]} intervals* return {number}*/ var eraseOverlapIntervals function(intervals) {intervals.sort((x,y)>(x[1]-y[1]))let r1for(let i0;i<intervals.length-1;i){//重叠if(intervals[i][1]>intervals[i1][0]){intervals[i…

向量数据库Milvus Cloud 2.3 工具升级: 解锁全新的运维功能

Milvus Cloud 2.3 已经发布,并且带来了一系列令人激动的新功能和升级。在这次升级中,Birdwatcher工具也得到了全面升级,为用户提供了更多强大的功能和更便捷的操作方式。在这篇文章中,我们将深入探讨Birdwatcher工具的升级内容,并带您一览Milvus Cloud 2.3的运维新特性。 …

2023数学建模国赛E题黄河水沙监测数据分析完整代码分析+处理结果+思路文档

已经写出国赛E题黄河水沙监测数据分析完整代码分析处理结果思路分析&#xff08;30页&#xff09;&#xff0c;包括数据预处理、数据可视化&#xff08;分组数据分布图可视化、相关系数热力图可视化、散点图可视化&#xff09;、回归模型&#xff08;决策树回归模型、随机森林回…

JAVA培训-核心概念学习

JAVA培训-核心概念 1. SpringBoot 1.1 理清概念(Spring、SpringMvc、SpringBoot、SpringCloud) 1、Spring Spring是一个开源容器框架&#xff0c;可以接管web层&#xff0c;业务层&#xff0c;dao层&#xff0c;持久层的组件&#xff0c;并且可以配置各种bean,和维护bean与…

【用unity实现100个游戏之10】复刻经典俄罗斯方块游戏

文章目录 前言网格生成Block方块脚本俄罗斯方块基类&#xff0c;绘制方块形状移动逻辑限制移动自由下落下落后设置对应风格为不可移动类型检查当前方块是否可以向指定方向移动旋转逻辑消除逻辑游戏结束逻辑怪物生成源码参考完结 前言 当今游戏产业中&#xff0c;经典游戏的复刻…

基于SSM的校园美食交流系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用Vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

开开心心带你学习MySQL数据库之第六篇下

插入查询结果 把查询和新增联合起来. 把查询结果作为新增的数据 例子:把student1表的查询结果作为新增数据插入到student2表中. create table student1(id int, name varchar(20));create table student2(id int, name varchar(20));insert into student1 values(1, 张三), (2…

NFT 合约部署教程

本篇文章主要介绍如何将您的 NFT(ERC-721 Token) 通过智能合约部署到去中心化网络中 Init Project //创建一款ocean的NFT mkdir nft-ocean//进入目录 cd nft-ocean//初始化项目&#xff0c;根据提示填写即可&#xff0c;packname和description填写即可 npm init//添加hardhat…

【JAVA】Object类与抽象类

作者主页&#xff1a;paper jie_的博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和…

批量剪辑神器:AI智剪技巧全攻略

在视频剪辑的工作流程中&#xff0c;效率和质量都是至关重要的。有时候&#xff0c;我们需要对大量的视频进行剪辑&#xff0c;这可能会耗费大量的时间和人力。然而&#xff0c;随着技术的发展&#xff0c;AI智能剪辑工具如固乔智剪软件的出现&#xff0c;大大提高了剪辑的效率…

架构师之如何定位问题

1. 什么是问题 很多人对问题的理解不一样&#xff0c;有人认为问题就是解决方案中的难点&#xff0c;有人认为问题是现实和目标的差距&#xff0c;这些解读我觉得都还不够精确&#xff0c;尝试从毛主席的矛盾论中得到比较合理的解释&#xff1a; 问题就是事物的矛盾。哪里有没…

Ubuntu22.04 安装 MongoDB 7.0

稍微查了一些文章发现普遍比较过时。有的是使用旧版本的Ubuntu&#xff0c;或者安装的旧版本的MongoDB。英语可以的朋友可以移步Install MongoDB Community Edition on Ubuntu — MongoDB Manual&#xff0c;按照官方安装文档操作。伸手党或者英语略差的朋友可以按照本文一步步…

计算机重点学科评级B-,山东省属重点高校考情分析

山东科技大学(B-) 考研难度&#xff08;☆☆&#xff09; 内容&#xff1a;23考情概况&#xff08;拟录取和复试分析&#xff09;、院校概况、23专业目录、23复试详情、各专业考情分析、各科目考情分析。 正文1175字预计阅读&#xff1a;3分钟 2023考情概况 山东科技大学计…

stable diffusion webui升级bug问题解决思路(纯干货)

个人网站&#xff1a;https://tianfeng.space/ 文章目录 一、前言二、个人方案1.扼杀在萌芽中A.解压后点击启动器运行依赖&#xff0c;然后点击A启动器B.更新本体和扩展&#xff08;全部到最新版本&#xff09;C.把controlnet1.1放入stable diffusion 中D.插件转移E.模型转移F…