vue填坑之路——Day1(基础)

前端转AI应用开发的思维转变路径 AI应用开发并非从零学习算法,而是将前端工程师已有的状态管理、异步编程与工程化能力,在概率性系统中重构升级。其核心在于理解大模型输出的不确定性本质,掌握提示词作为‘语义状态’的设计方法,并构建容错、可观测、可编排的人机协作流程。结合前端熟悉的UI还原思维,转向意图对齐与体验闭环设计,使开发者能驾驭LLM、Embedding、RAG等关键技术栈,落地如AI会议纪要、智能客服、合同审查等真实场景。关键词‘前端’‘AI应用开发’‘思维转变’共同指向一场由实现者到AI工作流设计师的角色跃迁。 阅读详情

MVVM模式

MVVM、MVC、MVP都是架构模式,这里是这三者的图示。vue中MVVM架构如下:
这里写图片描述


Vue基本语法

Vue实例和Vue组件

Vue实例由Vue函数创建。

var vm = new Vue({
//
})

Vue组件也是Vue实例,组件可以扩展html元素,封装可重用代码。

// 注册
Vue.component('my-component', {
  template: '<div>A custom component!</div>'
})

// 创建根实例
new Vue({
  el: '#example'
})

渲染为

<div id="example">
  <div>A custom component!</div>
</div>
父子组件通信

参考笔记

父组件给子组件传递字符串
// html
<div id="m-dialog">
<!-- 
<child value="str"></child>
该种方法“只能传递字符串”,
将child的data中的value = "str";不需要父组件data中有数据
 -->
    <child value="str"></child>
</div>
// js
// 注册子组件
Vue.component("child", {
    // 获取value的依赖
    props:["value"],
    template: '<span>{{ value }}</span>'
});

// 父实例
new Vue({
    // 这里的el可视为父组件
    el:"#m-dialog"
});

渲染结果
这里写图片描述

父组件给子组件传递数据(动态prop)

使用v-bind 绑定子组件的data,如果父组件的flag发生改变,会传递给子组件。

// html
<div id="m-dialog">
    <child v-bind:state = 'flag'></child>
</div>
// js
Vue.component("child", {
    props:["state"],
    template: '<span>{{ state }}</span>'
});
new Vue({
    el:"#m-dialog",
    data: {
        flag: true
    }
});

渲染结果

true
子组件数据emit给父组件
// html
<div id="m-dialog">
<!-- v-on:cancle="other"表示如果触发组件中的cancle事件则连带触发父组件中的other时间-->
    <child v-on:cancle="other"></child>
</div>
// js
Vue.component("child", {
    template: '<button v-on:click="cancle">我是按钮,点我触发父组件事件</button>',
    methods: {
        cancle: function() {
            // 与父组件通信一定要加上这句话
            this.$emit('cancle');
        }
    }
});
var vue1 = new Vue({
    // 这里的el可视为父组件
    // 所以下面这个片段是放在#m-dialog里面的
    el:"#m-dialog",
    data: {
        flag: true
    },
    methods: {
        other: function() {
            alert();
        }
    }
});
ref属性

使用 ref 为子组件 / 元素指定一个引用 ID:ref = 'ID'。通过vm.$refs.ID 获取该组件/元素。

<div id="app">
    <child ref = 'mycom'></child> // 子组件
</div>

则在父组件中,通过vm.$refs.mycom 获取整个子组件对象。(vm是父组件)


指令
Mustache语法、v-text和v-html
  • {{content}} 更新文本(部分文本)的textContent
  • <div v-text = 'content'></div> 插入的content会被解析为字符串
  • <div v-html = 'content'></div> 更新div的innerHtml,内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译。
v-cloak
// html
<div v-cloak> {{ content }} </div>

// css
[v-cloak] {
  display: none;
}

则div中content会在vue实例准备完毕之后才显示。次方法可以避免网速较慢时候,{{ content }} 引起的闪烁。

v-bind
  • 绑定class
<div class = "static" v-bind: class = "{ active: isActive, 'text-danger': hasError }"></div>

若data如下

data() {
  return {
    isActive: true,
    hasError: false
    }
  }

结果渲染为<div class = "static active"></div>
绑定的数据对象不必内联定义在模板中

// 渲染结果同上
<div v-bind:class="classObject"></div>
data: {
  classObject: {
    active: true,
    'text-danger': false
  }
}

也可以返回绑定对象的计算属性

<div v-bind:class="classObject"></div>
data: {
  isActive: true,
  error: null
},
computed: {
  classObject: function () {
    return {
      active: this.isActive && !this.error,
      'text-danger': this.error && this.error.type === 'fatal'
    }
  }
}
  • 绑定style
  • 绑定元素的属性
    例如,绑定一个input标签的name属性
<input type = 'text' v-bind = "{ value: 'hello ' + name }" />

// data
data() {
  name: 'hello world!'
}

渲染结果
这里写图片描述

v-model

上面input的value值如果发生改变,是不会“同步”到data中的name值,要实现“双向绑定”,需要使用v-model 指令。一般用在表单输入绑定,input、textarea等。

v-for

vue2.0之后,要访问遍历的数组中对象的下标,要把index写在括号中第二位。

<ul>
    <li v-for = "(item, index) in items">{{ index }} - {{ item }}</li>
</ul>

// data
items: ['item1', 'item2', 'item3']

结果
这里写图片描述
遍历一个对象的属性及属性值

<ul>
    <li v-for = "(item, key) in user">
        {{ key }}-{{ item }}
    </li>
</ul>

// data
user: {
    name: 'userName',
    age: 20
}

结果
这里写图片描述

列表渲染中的key属性
key 的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。使用 key,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。

有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。
假如v-for 出来的元素中有相同的,console会华丽丽打出warning

[Vue warn]: Duplicate keys detected: '重复渲染项'. This may cause an update error.

它也可以用于强制替换元素/组件而不是重复使用它。当你遇到如下场景时它可能会很有用:

  • 完整地触发组件的生命周期钩子
  • 触发过渡
<transition name = 'fade'>
     <span>{{ text }}</span>
</transition>

如果span 没有绑定key 属性,则在text发生改变的时候,transition 组件会被重复使用,此时text文本被简单替换,不会触发元素过渡效果。
这里写图片描述
为span元素绑定key属性<span :key = 'text'>{{ text }}</span> ,则text发生变化的时候,transition 组件会被替换/重新渲染。
这里写图片描述

v-if vs v-show

v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下,v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS display: none;进行切换。

一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

v-on

用在普通元素上时,只能监听原生 DOM 事件。用在自定义元素组件上时,也可以监听子组件触发的自定义事件。简写@
在监听键盘事件时,我们经常需要检查常见的键值。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符,以下几种写法等效。

<!-- 只有在 `keyCode` 是 13 时(enter键)调用 `vm.submit()` -->
<input v-on:keyup.13="submit">

<!-- 同上 -->
<input v-on:keyup.enter="submit">

<!-- 缩写语法 -->
<input @keyup.enter="submit">

可以通过全局 config.keyCodes 对象自定义按键修饰符别名:

// 可以使用 v-on:keyup.f1
Vue.config.keyCodes.f1 = 112

watch与计算属性computed
computed

模板内的表达式{{ expression }} 的逻辑若太复杂,不好看也不易维护。

<div id="example">
  {{ message.split('').reverse().join('') }}
</div>

此时使用计算属性。

<div id="example">
  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
var vm = new Vue({
  el: '#example',
  data: {
    message: 'Hello'
  },
  computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }
})

结果:
Original message: “Hello”

Computed reversed message: “olleH”

也可以在methods 中定义一个reversedMessage 方法。效果一样。但是两者也有区别:

[Note] computed 只有在相关依赖发生变化的时候,才会重新求值。例如reversedMessage 属性依赖message 属性,如果message 不改变,reversedMessage 不会更新,此时多次访问reversedMessage 会立即返回缓存的值。
看这个例子:

// html

<p>date: '{{ date }}'</p>
<p>date + 1: '{{ dateAdd }}'</p>
<!-- past 的值在vue实例生成后,不再改变 -->
<p>computed: past: '{{ past }}'</p>

<p>function called: now: '{{ now() }}'</p>
// javascript

var vm = new Vue({
    el:"#app",
    data: function(){
        return {
            message: 'Hello',
            date: 1518673470535
        }
    },
    computed: {
        // 计算属性dateAdd的依赖是date
        dateAdd: function() {
            console.log('computed: date + 1')
            return this.date + 1
        },

        // 计算属性past没有依赖date
        past: function() {
            console.log('computed: past')
            return Date.now()
        }
     },
    methods: {
        now: function() {
            console.log('function called: now')
            return Date.now()
        }
    }
    });

vm 实例第一次生成后,计算属性dateAdd 和past 第一次更新。now() 函数调用,所以在控制台可以看到三个消息:
这里写图片描述
改变date的值

  • dateAdd 更新。
  • 因为past 的值不依赖date ,所以它不更新。
  • 触发重新渲染,函数 now() 会执行,页面中{{ now() }} 也会更新。
    这里写图片描述
watch

监听数据变化,特别是在有些数据会随着其他数据变化时变化,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。

var vm = new Vue({
    el:"#app",
    data: function(){
        return {
            firstName: 'html',
            lastName: 'css',
            fullName: 'html-css'
        }
    },
    watch: {
        // firstName 发生改变的时候,这个函数会立刻被调用
        /**
        params:
        newval:firstName新值
        oldval:firstName旧值
        **/
        firstName: function(newval, oldval) {
        // 更新fullName
        this.fullName = this.firstName + '-' + this.lastName
        }
    }
    });

watch 属性中firstName 函数,作用就是监听firstName 的值,参数newval、oldval 都是可选的。

监控路由对象:

'$route': function(newRoute, oldRoute){
    // 获取新的路由对象和旧的路由对象
    // 对一些特定页面或者特殊操作(如返回),执行某些操作
}

过滤
  • 列表渲染v-for 渲染结果的过滤:在computed属性中使用js内置filter
// html
// ...
<tr v-for = 'item in filterItems'>
    <td>{{ item.id }}</td>
    <td>{{ item.text }}</td>
    <td>{{ item.ctime }}</td>
    <td>
        <button @click = 'remove(item.id)'>delete</button>
    </td>
</tr>

// js
computed: {
    filterItems: function() {
        var self = this
        return self.items.filter(function(item){
            return item.text.indexOf(self.value) !== -1
        })
    }
}

// data
value: ''

效果
这里写图片描述

  • 本地过滤器
    在vue组件filter 属性中定义私有过滤器。
<!-- 在双花括号中 -->
{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>
filters: {
  capitalize: function(value){
    // ...
  }
}

value是默认参数,取自过滤器capitalize左边管道符(|)的左边的参数,这里是message。有这几机制,则可以很好理解多级过滤。

{{ message | filterA | filterB }}

过滤器是js的函数,有一个取自管道符(|)左边的默认参数,也可以向过滤器传递参数。

{{ message | filterA('arg1', arg2) }}

以上filterA接受三个参数,第一个参数是默认参数message,第二个参数是字符串常量'arg1 ,第三个参数是表达式arg 。

在创建Vue实例之前,定义全局过滤器。

Vue.filter('capitalize', function (value) {
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})

new Vue({
  // ...
})
自定义指令

全局注册

Vue.directive('不带 v- 的指令名称', {
  钩子函数: function(para){}
}

局部注册

directives: {
  '不带v-的指令名称': {
    钩子函数: function(para){}
    }
}

钩子函数

bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。
inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新。
componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。
unbind:只调用一次,指令与元素解绑时调用。

钩子函数的参数el、binding、vnode、oldVnode。见官网-钩子函数的参数

从零到一:NI USB-8506 LIN通讯的驱动安装与硬件调试全攻略 本文详细介绍了NI USB-8506 LIN通讯设备的驱动安装与硬件调试全流程,包括硬件准备、驱动下载与配置、NI MAX设置及常见问题解决方案。通过实战应用与性能优化技巧,帮助用户快速掌握LIN通讯技术,适用于车载数据记录和自动化测试等场景。 阅读详情

相关推荐

体系结构学习-6-超标量处理器

 MIPS32-5段流水线采用了指令级并行方式(5个流水段同时运行5条指令)提升系统吞吐率,是一种标量处理器(CPI≥1CPI \ge 1CPI≥1),但是一个周期一条指令以及无法满足现代计算机需求了。 超标量处理器(Superscalar) 1、基本思想:增强指令集并行,让每个周期执行更多指令,实现 CPI<1CPI<1CPI<1 。(IPC=1/CPIIPC = 1...

qq_40891899的博客 1213

Vue注意点——this

Vue注意点——this的简单介绍个不同场景下使用的this的不同点

hssjsh的博客 571

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

Vue5:样式绑定

Vue.js 样式绑定 Vue.js class class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。 Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。 class 属性绑定 我们可以为 v-bind:class 设置一个对象,从而动态的切换 class: <div v-bind:class="{ active: isActive }"&

menglong0329的博客 412

《大数据之路:阿里巴巴大数据实践》-第1篇 数据技术篇 -第3章数据同步

我们将数据釆集分为日志采集和数据库数据同步两 部分。数据同步技术更通用的含义是不同系统间的数据流转,有多种不 同的应用场景。主数据库与备份数据库之间的数据备份,以及主系统与 子系统之间的数据更新,属于同类型不同集群数据库之间的数据同步。 另外,还有不同地域、不同数据库类型之间的数据传输交换,比如分布 式业务系统与数据仓库系统之间的数据同步。对于大数据系统来说,包 含数据从业务系统同步进入数据仓库和数据从数据仓库同步进入数据 服务或数据应用两个方面。本章侧重讲解数据从业务系统同步进入数据 仓库这个环节,但其适

m0_54252387的博客 961

基于STM32L4XX、HAL库的MAX13487EESA RS485总线收发器驱动程序设计

MAX13487EESA是一款3.3V供电的RS-485/RS-422收发器,由Maxim Integrated生产。PA4 (控制引脚) ---> /RE, DE (连接在一起)具有±15kV ESD保护的驱动器输出和接收器输入。半双工RS-485/RS-422通信。工业温度范围:-40°C至+85°C。工作电压范围:3.0V至3.6V。数据速率高达250kbps。

zhusl6688的博客 687

Vue的基础知识

本质就是JavaScript Proxy对象(代理对象)Vue可以跟踪对象的属性的改变,改变页面的值。

weixin_45105259的博客 570

多思计组实验实验六 微程序控制器实验

实验六 微程序控制器实验

qq_53089329的博客 3784

css vue 内联_Vue学习笔记(三)

1 监听 在Vue.js中可以通过watch来监听数据的变化,比如通过watch实现的简单计数器:<div id="app"> <p>计数器:{{count}}</p> <button @click="count++">点我增加</button> <p id="info"></p> <...

weixin_35686326的博客 281

Agent Harness Engineering: AI Agent 执行管控与安全沙箱 原理与最佳实践

我们正站在计算范式转移的历史节点上。2024-2026 年间,AI 系统从被动的内容生成器(Generative AI)演变为主动的行动执行者(Agentic AI)。这一转变的根本特征是:根据 2026 年初的行业数据:然而,能力的提升伴随着风险的指数级增长。2024-2026 年间发生的多起标志性安全事件揭示了 Agent 系统的脆弱性:案例 1:Slack AI 数据外泄事件(2024 年 8 月)案例 2:制造业供应链攻击(2026 年 Q3)案例 3:Arup 深度诈骗案(2026 年 9 月)这

AI天才研究院 1669

Coze智能体开发:扣子空间制作PPT功能

扣子空间内置了丰富的场景模板,涵盖人文历史、学术分享、研究报告、数据分析等场景,可以满足不同用户的需求。 你只需输入与制作 PPT 相关的提示词,Agent 就能基于这些提示词展示思考的过程,并自动生成完整的 PPT。

王国平的博客 2052

antdesign对话框this.$info、this.$success、 this.$error、this.$warning、this.$confirm提示,content设置html格式展示

antdesign对话框this.$info、this.$success、 this.$error、this.$warning、this.$confirm提示,content设置html格式展示

Sunny_lxm的博客 1069

危废焚烧优化控制系统设计与实现:基于数据驱动的控制参数预测

本文提出了一种基于数据驱动的危险废物焚烧过程优化控制方法。系统利用历史运行数据和实时监测数据,通过深度学习模型预测关键控制参数,实现焚烧过程的智能化控制。系统采用Python开发,结合TensorFlow/PyTorch框架,构建了完整的数据采集、预处理、特征工程、模型训练和实时预测闭环系统。该系统能够处理多变量非线性关系,适应工况变化,从历史数据中学习最优控制策略,相比传统PID控制方法具有显著优势。论文详细介绍了系统架构、算法设计和实现细节,为危废焚烧过程的优化控制提供了有效解决方案。

huanghm88的专栏 206

Vue入门到上手(7)—— VueJs 填坑日记之渲染一个列表

Vue入门到上手(7)—— VueJs 填坑日记之渲染一个列表 在上一篇博文中,我们对vue组件有了一个简单的认识和大概的理解。在之前认识项目结构的时候,我们在/src目录中创建了一个components的文件夹,而今天就要用到了,这个文件夹的作用就是放置我们的自定义组件。 制作header.vue组件 在components文件夹中,创建一个header.vue的文件,然后填入以下内容: <template> <header class="header">

与其终的知识小窝 351

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

七、VueJs 填坑日记之渲染一个列表

在上一篇博文中,我们对vue组件有了一个简单的认识和大概的理解。在之前认识项目结构的时候,我们在/src目录中创建了一个components的文件夹,而今天就要用到了,这个文件夹的作用就是放置我们的自定义组件。 制作header.vue组件在components文件夹中,创建一个header.vue的文件,然后填入以下内容: <template> <hea...

weixin_30291791的博客 128

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

vue填坑之路——Day2(基础)

网络请求 HTTP报文 GET请求报文和响应报文 axios axios英文文档 Vue实例生命周期 生命周期钩子:created、mounted 等等, 生命周期钩子函数:在Vue实例存活的不同阶段执行的函数,函数的this 指向调用它的Vue实例。 Vue过渡动画 元素从DOM插入或移除时触发过渡效果。触发场景有 条件渲染 v-if ...

扬扬羊的博客 420

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Vue填坑之路——Day4(项目)

项目构建 准备工作 新建项目文件夹demo,初始化package.json 文件 npm init 安装webpack到项目目录 npm install --save-dev webpack 安装各种包 npm install 命令会安装package.json 中的依赖。借助Vue官方CLI生成的package.json 文件,我们来看看需要哪些依赖,并尝试自己安装...

扬扬羊的博客 400

Vue填坑之路——Day3(Webpack)

为什么使用Webpack 此处参考简书文章 Webpack是什么 WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。 为什么使用Webpack 现今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的Jav...

扬扬羊的博客 547

vue基本的执行流程—Vue源码的学习

day01 Vue与模板 使用步骤 编写 页面 模板 1)直接在html标签中写 标签 作为模板 2)使用 template 作为模板 3) 使用单文件 ( < template /> ) 作为模板 创建VUE的实例 ,(new 一个vue对象) 1)在vue的构造函数中提供渲染数据所需要的各种方法:data,methods,… 将vue挂载到 页面中 ...

Aglaia_web的博客 1899

微服务[学成在线] day02:CMS前端开发

???? 写在前面 我为什么要花时间去写这个笔记? 由于在学习该项目的过程中发现了原讲义存在的一些问题,所以该笔记基于「学成在线」微服务项目 PDF 讲义进行编写,并且投入了时间去优化了笔记的格式、代码的高亮、重点的标记等。 以及一些原讲义中所描述的一些知识点使我无法理解的内容,我会对这些内容的表达方式进行修改或者提出一些问题,并且用我自己所理解的一些想法去重新的解释这个问题。 总结一下原 PDF 讲义中已知的一些问题: 从 PDF 中复制出来的代码,部分特殊符号的编码有问题,并且不易被发现,例如横杠

通往体面生活的路上 614

Vue2.0学习--基础--3--计算属性和侦听器

(day4) 前面三天学习了一些Vue核心的一些非常基本的功能: 声明式渲染、条件和循环、处理用户输入、组件化应用构建 Vue实例:创建一个vue实例、数据与方法、实例生命周期钩子、生命周期图示 模板语法:插值、指令、缩写 前面讲到的知识让我们开始认识到了Vue的模板语法,在第二节的时候我们知道了每一个Vue实例都有一个参数——选项对象,选项对象里面有许多选项(选项/数据、选项/DOM、选项/生命周期钩子、选项/资源、选项/组合、选项/其他),我们通过选用这些选项在Vue中完成我们想要完成的事情。

Small_sesame的博客 361

Vue2.0学习--基础--6--列表渲染

(day6-2)

Small_sesame的博客 655

uniapp-day-one-day

这个的我因为我刚开始学所以只能先把自己了解到的给大家讲,后面最后再进行填坑,还有就是有错误的话,请您一定要指出喔!首先创建出来的项目就是这个样子的了,其中pages是放页面的,我们生成页面的时候可以选择创建同名目录和在pages.json中注册static则是存储静态文件或者图片这些的分为主要三个包子,第一个包子是template也就是我们用来画页面的,第二个包子则是script,在我浅显的前端知识面认知中是用来写前端逻辑的,数据这些;第三个则是style我则是用的sass来写css。

kkko1的博客 351

从黑客松Demo Day学习腾讯云Serverless架构实战与优化

Serverless架构作为一种云计算执行模型,其核心原理在于将服务器管理、资源分配等底层运维工作交由云平台处理,开发者只需专注于业务逻辑代码的编写。这种模式的技术价值在于实现了极致的弹性伸缩与按需付费,显著降低了运维复杂度和初始成本。在实际应用场景中,Serverless常与云函数、API网关、对象存储等服务组合,用于构建Web应用后端、数据处理流水线、IoT消息处理等。本文以腾讯云黑客松实战项目为切入点,深入解析了如何利用云函数快速构建API服务并连接数据库,同时探讨了冷启动优化、数据库连接管理等工程实

weixin_34112181的博客 501

微服务[学成在线] day20:项目总结

???? 写在前面 我为什么要花时间去写这个笔记? 由于在学习该项目的过程中发现了原讲义存在的一些问题,所以该笔记基于「学成在线」微服务项目 PDF 讲义进行编写,并且投入了时间去优化了笔记的格式、代码的高亮、重点的标记等。 以及一些原讲义中所描述的一些知识点使我无法理解的内容,我会对这些内容的表达方式进行修改或者提出一些问题,并且用我自己所理解的一些想法去重新的解释这个问题。 总结一下原 PDF 讲义中已知的一些问题: 从 PDF 中复制出来的代码,部分特殊符号的编码有问题,并且不易被发现,例如横杠

通往体面生活的路上 3261

el-calendar日历自定义显示内容

有码友在评论区里分享了更简介的方式,看到后一直想尝试一下,所以本篇就是来填坑的。

资浅程序媛,个人公众/头条/百家号:郑州小闲人,关注权限已向你开放 3797
上一篇: ES6学习笔记(二)——函数的扩展
下一篇: vue填坑之路——Day2(基础)
扬扬羊
博客等级 码龄9年 11粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值