,
限制了能被它包裹的元素,而一些像
这样的元素只能出现在某些其它元素内部。
在自定义组件中使用这些受限制的元素时会导致一些问题,例如:
自定义组件
被认为是无效的内容,因此在渲染的时候会导致错误。这时应使用特殊的 is
属性:
也就是说,标准HTML中,一些元素中只能放置特定的子元素,另一些元素只能存在于特定的父元素中。比如table
中不能放置div
,tr
的父元素不能div
等。所以,当使用自定义标签时,标签名还是那些标签的名字,但是可以在标签的is
属性中填写自定义组件的名字。
应当注意,如果您使用来自以下来源之一的字符串模板,这些限制将不适用:
JavaScript 内联模版字符串
.vue
组件
其中,前两个模板都不是Vue官方推荐的,所以一般情况下,只有单文件组件.vue
可以忽略这种情况。
组件的属性和事件
在html中使用元素,会有一些属性,如class
,id
,还可以绑定事件,自定义组件也是可以的。当在一个组件中,使用了其他自定义组件时,就会利用子组件的属性 和事件 来和父组件进行数据交流。
如上如所示,父子组件之间的通信就是 props down,events up ,父组件通过 属性props 向下传递数据给子组件,子组件通过 事件events 给父组件发送消息。 比如,子组件需要某个数据,就在内部定义一个prop
属性,然后父组件就像给html元素指定特性值一样,把自己的data属性传递给子组件的这个属性。 而当子组件内部发生了什么事情的时候,就通过自定义事件 来把这个事情涉及到的数据暴露出来,供父组件处理。
如上代码,
foo
是
组件内部定义的一个prop
属性,baz
是父组件的一个data属性,
event-a
是子组件定义的一个事件,doThis
是父组件的一个方法
过程就是这样:
父组件把baz
数据通过prop
传递给子组件的foo
;
子组件内部得到foo
的值,就可以进行相应的操作;
当子组件内部发生了一些变化,希望父组件能知道时,就利用代码触发event-a
事件,把一些数据发送出去
父组件把这个事件处理器绑定为doThis
方法,子组件发送的数据,就作为doThis
方法的参数被传进来
然后父组件就可以根据这些数据,进行相应的操作
属性Props
Vue组件通过props
属性来声明一个自己的属性,然后父组件就可以往里面传递数据。
Vue.component('mycomponent',{
template: '这是一个自定义组件,父组件传给我的内容是:{{myMessage}}
',
props: ['myMessage'],
data () {
return {
message: 'hello world'
}
}
})
然后调用该组件
注意 ,由于HTML特性是不区分大小写的,所以传递属性值时,myMessage
应该转换成 kebab-case (短横线隔开式)my-message="hello"
。
v-bind绑定属性值
这里说一下v-bind
绑定属性值的一个特性:一般情况下,使用v-bind
给元素特性(attribute)传递值时,Vue会将""
中的内容当做一个表达式。 比如:
hello
上面这样,div
元素的attr
特性值就是message
。
而这样
hello
这里的message
应该是Vue实例的data的一个属性,这样div
元素的attr
特性值就是message
这个属性的值。
之所以说是一般情况,是因为class
和style
特性并不是这样。用v-bind:class
和class
传入正常的类名,效果是一样的,因为对于这两个特性,Vue采用了合并而不是替换的原则。
动态绑定特性值
根据上面,想要把父组件的属性绑定到子组件,应该使用v-bind
,这样,父组件中数据改变时能反映到子组件。注意 ,根据父组件传递给子组件的属性类型的不同,当在子组件中更改这个属性时,会有以下两种情况:
当父组件传递的属性是引用类型时,在子组件中更改相应的属性会导致父组件相应属性的更改。
这是父组件的parentArray:{{parentArray}}
当父组件传递值为基本类型时,在子组件中更改这个属性会报错。正确的做法是,在父组件中绑定属性值时,加上.sync
修饰符。
然后在子组件中改变相应的属性
methods: {
changeArray () {
this.counter++
this.$emit('update:childArray', this.counter)
}
}
子组件希望对传入的prop进行操作
一般来说,是不建议在子组件中对父组件中传递来的属性进行操作的。如果真的有这种需求,可以这样:
父组件传递了一个基本类型值,那么可以在子组件中创建一个新的属性,并以传递进来的值进行初始化,之后就可以操作这个新的属性了
props: ['initialCounter'],
data: function () {
return { counter: this.initialCounter }
}
父组件传递了一个引用类型值,为了避免更改父组件中相应的数据,最好是对引用类型进行复制。复杂的情况,肯定应该是深复制。
给子组件传递正确类型的值
同样是上面的原因,静态的给子组件的特性传递值,它都会把他当做一个字符串。
子组件中,特性的值是字符串 "1" 而不是 number 1。如果想传递正确的数值,应该使用v-bind
传递,这样就能把传递的值当做一个表达式来处理,而不是字符串。
Prop验证
我们可以给组件的props
属性添加验证,当传入的数据不符合要求时,Vue会发出警告。
Vue.component('example', {
props: {
// 基础类型检测 (`null` 意思是任何类型都可以)
propA: Number,
// 多种类型
propB: [String, Number],
// 必传且是字符串
propC: {
type: String,
required: true
},
// 数字,有默认值
propD: {
type: Number,
default: 100
},
// 数组/对象的默认值应当由一个工厂函数返回
propE: {
type: Object,
default: function () {
return { message: 'hello' }
}
},
// 自定义验证函数
propF: {
validator: function (value) {
return value > 10
}
}
}
})
type
可以是下面原生构造器:
String
Number
Boolean
Function
Object
Array
Symbol
type
也可以是一个自定义构造器函数,使用 instanceof
检测。
// 自定义Person构造器
function Person(name, age) {
this.name = name
this.age = age
}
Vue.component('my-component', {
template: `名字: {{ person-prop.name }}, 年龄: {{ person-prop.age }}
`,
props: {
person-prop: {
type: Person // 指定类型
}
}
})
new Vue({
el: '#app2',
data: {
person: 2 // 传入Number类型会报错
}
})
非Prop类型的属性
也可以像在html标签中添加data-
开头的自定义属性一样,给自定义组件添加任意的属性。而不仅限于data-*
形式,这样做的话,Vue会把这个属性放在自定义组件的根元素上。一个自定义组件的模板只能有一个根元素 。
覆盖非Prop属性
如果父组件向子组件的非prop属性传递了值,那么这个值会覆盖子组件模板中的特性。
上面渲染的结果是,div
的att
属性是helloParent
。注意 :前面已经提到过,覆盖原则对于class
和style
不适用,而是采用了合并(merge)的原则。
上面的渲染结果是,div
的类名是class1 class2
,行内样式是color:red; background:yellow;
。
自定义事件
通过prop
属性,父组件可以向子组件传递数据,而子组件的自定义事件就是用来将内部的数据报告给父组件的。
如上所示,共分为以下步骤:
子组件在自己的方法中将自定义事件以及需要发出的数据通过以下代码发送出去
this.$emit('myclick', '这是我暴露出去的数据', '这是我暴露出去的数据2')
第一个参数是自定义事件的名字
后面的参数是依次想要发送出去的数据
父组件利用v-on
为事件绑定处理器
这样,在Vue实例的methods
方法中就可以调用传进来的参数了
注意 : 在使用v-on
绑定事件处理方法时,不应该传进任何参数,而是直接写v-on:myclick="onClick"
,不然,子组件暴露出来的数据就无法获取到了
绑定原生事件
如果想在某个组件的根元素 上监听一个原生事件。可以使用 .native
修饰 v-on
探究v-model
v-model
可以对表单控件实现数据的双向绑定,它的原理就是利用了绑定属性和事件来实现的。比如input
控件。不使用v-model
,可以这样实现数据的双向绑定:
{{text}}
上面的代码同样实现了数据的双向绑定。其本质就是:
把input
的value
特性绑定到Vue实例的属性text
上,text
改变,input
中的内容也会改变
然后把表单的input
事件处理函数设置为Vue实例的一个方法,这个方法会根据输入参数改变Vue中text
`的值
相应的,在input
中输入内容时,触发了input
事件,把event.target.value
传给这个方法,最后就实现了改变绑定的数据的效果。
而v-model
就是上面这种方式的语法糖,也就是把上面的写法封装了一下,方便我们使用。
使用自定义事件创建自定义的表单输入组件
理解了v-model
的内幕,也就可以把这个效果用在自定义表单组件上了。 来实现一个简单的只能输入hello
的表单输入组件。
定制组件的v-model
默认情况下,一个组件的 v-model
会使用 value
属性和 input
事件,但是诸如单选框、复选框之类的输入类型可能把 value
属性用作了别的目的。model
选项可以回避这样的冲突:
Vue.component('my-checkbox', {
model: {
prop: 'checked', // 将输入的特性改为checked
event: 'change' // 触发的自定义事件类型为change
},
props: {
checked: Boolean,
// this allows using the `value` prop for a different purpose
value: String
}
})
这样设置的话,
上面的代码就等同于
{ foo = val }" value="some value">
实际使用时,与之前不同的地方是:
把子组件中接收外部数据的prop
属性改为checked
向父组件发出事件时,事件类型应改为change
Vue.component('my-component3', {
template: ` `,
props: ['checked'], // 属性名改变
model: {
prop: 'checked',
event: 'change'
},
methods: {
checkInput (value) {
var hello = 'hello'
if (!hello.includes(value)) {
this.$emit('change', hello) // 事件类型改变
this.$refs.input.value = hello
} else {
this.$emit('change', value) // 事件类型改变
}
}
}
})
动态组件
通过使用保留的
元素,动态地绑定到它的 is
特性,可以让多个组件使用同一个挂载点,并动态切换:
home
post
about
也可以直接绑定到组件对象上:
var Home = {
template: ``
}
new Vue({
el: '#app6',
data: {
currentComponent: Home
}
})
保留切换出去的组件,避免重新渲染
如果把切换出去的组件保留在内存中,可以保留它的状态或避免重新渲染。为此可以添加一个 keep-alive
指令参数:
使用slot分发内容
终于到了基本知识的最后一个了。官网写的很详细。
单个slot
上面用到的很多组件的使用方式是这样的:
也就是说组件中是空的,没有放置任何文本或元素。但是原生的html元素都是可以进行嵌套的,div
里面放table
什么的。自定义组件开闭标签之间也可以放置内容,不过需要在定义组件时使用slot
。
slot
相当于子组件设置了一个地方,如果在调用它的时候,往它的开闭标签之间放了东西,那么它就把这些东西放到slot
中。
当子组件中没有slot
时,父组件放在子组件标签内的东西将被丢弃;
子组件的slot
标签内可以放置内容,当父组件没有放置内容在子组件标签内时,slot
中的内容会渲染出来;
当父组件在子组件标签内放置了内容时,slot
中的内容被丢弃
子组件的模板:
我是子组件的标题
只有在没有要分发的内容时才会显示。
父组件模板:
渲染结果:
具名slot
slot
可以有很多个。那么子组件对于父组件放置的多余的内容如何放到各个slot
中呢?方法就是子组件给每个slot
起一个名字name
,父组件放置多余的元素时,给每个元素的slot
属性分配一个代表slot
的名字。到时候,多余的内容就会根据自己的slot
属性去找具有对应名字的slot
元素。
注意 :
子组件可以有一个匿名的slot
,当分发的多余内容找不到对应的slot
时,就会进入这里面
如果子组件没有匿名的slot
,当分发的多余内容找不到对应的slot
时,就会被丢弃
例如,假定我们有一个 app-layout 组件,它的模板为:
父组件模版:
这里可能是一个页面标题
主要内容的一个段落。
另一个主要段落。
这里有一些联系信息
渲染结果为:
作用域插槽
作用域插槽也是一个插槽slot
,但是他可以把数据传递给到父组件的特定元素内,然后有父组件决定如何渲染这些数据。
首先,子组件的slot
需要有一些特性(prop)
Vue.component('my-component4', {
template: `
`,
data () {
return {
hello: [1,'2']
}
}
})
父组件在调用子组件时,需要在里面添加一个template
元素,并且这个template
元素具有scope
特性
scope
特性的值,就代表了所有子组件传过来的数据组成的对象。相当于
props = {
text: '',
message: ''
}
最后,父组件就可以在template
中渲染子组件传过来的数据了
{{props.text}}
{{props.message}}
2018-07-19更新: 最新的Vue支持将作用域插槽的属性解构。所以上述代码可以简写为:
{{text}}
{{message}}
作用域插槽也是插槽,只不过是多加了些特性,然后父组件多进行了些处理。
你可能感兴趣的:(vue,组件,技术,软件开发)
移动端城市区县二级联动选择功能实现包
good2know
本文还有配套的精品资源,点击获取简介:本项目是一套为移动端设计的jQuery实现方案,用于简化用户在选择城市和区县时的流程。它包括所有必需文件:HTML、JavaScript、CSS及图片资源。通过动态更新下拉菜单选项,实现城市到区县的联动效果,支持数据异步加载。开发者可以轻松集成此功能到移动网站或应用,并可基于需求进行扩展和优化。1.jQuery移动端解决方案概述jQuery技术简介jQuery
(二)SAP Group Reporting (GR) 核心子模块功能及数据流向架构解析
数据如何从子公司流转到合并报表的全过程,即数据采集→合并引擎→报表输出,特别是HANA内存计算如何优化传统ETL瓶颈。SAPGroupReporting(GR)核心模块功能及数据流向的架构解析,涵盖核心组件、数据处理流程和关键集成点,适用于S/4HANA1809+版本:一、核心功能模块概览模块功能关键事务码/FioriApp数据采集(DataCollection)整合子公司财务数据(SAP/非SA
实时数据流计算引擎Flink和Spark剖析
程小舰
flink spark 数据库 kafka hadoop
在过去几年,业界的主流流计算引擎大多采用SparkStreaming,随着近两年Flink的快速发展,Flink的使用也越来越广泛。与此同时,Spark针对SparkStreaming的不足,也继而推出了新的流计算组件。本文旨在深入分析不同的流计算引擎的内在机制和功能特点,为流处理场景的选型提供参考。(DLab数据实验室w.x.公众号出品)一.SparkStreamingSparkStreamin
Git 与 GitHub 的对比与使用指南
一念&
其它 git github
Git与GitHub的对比与使用指南在软件开发中,Git和GitHub是两个密切相关但本质不同的工具。下面我将逐步解释它们的定义、区别、核心概念以及如何协同使用,确保内容真实可靠,基于广泛的技术实践。1.什么是Git?Git是一个分布式版本控制系统,由LinusTorvalds于2005年创建。它的核心功能是跟踪代码文件的变化,帮助开发者管理项目历史记录、协作和回滚错误。Git是开源的,可以在本地
英伟达靠什么支撑起了4万亿?AI泡沫还能撑多久?
英伟达市值突破4万亿美元,既是AI算力需求爆发的直接体现,也暗含市场对未来的狂热预期。其支撑逻辑与潜在风险并存,而AI泡沫的可持续性则取决于技术、商业与地缘政治的复杂博弈。⚙️一、英伟达4万亿市值的核心支撑因素技术垄断与生态壁垒硬件优势:英伟达GPU在AI训练市场占有率超87%,H100芯片的FP16算力达1979TFLOPS,领先竞品3-5倍。CUDA生态:400万开发者构建的软件护城河,成为A
深入解析JVM工作原理:从字节码到机器指令的全过程
一、JVM概述Java虚拟机(JVM)是Java平台的核心组件,它实现了Java"一次编写,到处运行"的理念。JVM是一个抽象的计算机器,它有自己的指令集和运行时内存管理机制。JVM的主要职责:加载:读取.class文件并验证其正确性存储:管理内存分配和垃圾回收执行:解释或编译字节码为机器指令安全:提供沙箱环境限制恶意代码二、JVM架构详解JVM由三个主要子系统组成:1.类加载子系统类加载过程分为
Flowable 实战落地核心:选型决策与坑点破解
练习时长两年半的程序员小胡
Flowable 流程引擎实战指南 低代码 BPMN 流程引擎 flowable 后端 java
在企业级流程引擎的落地过程中,选型的准确性和坑点的预见性直接决定项目成败。本文聚焦Flowable实战中最关键的“选型决策”与“常见坑点”,结合真实项目经验,提供可落地的解决方案。一、流程引擎选型:从业务本质出发1.1选型的三大核心维度企业在选择流程引擎时,需避免陷入“技术崇拜”,应回归业务本质。评估Flowable是否适用,可从三个维度判断:业务复杂度若流程涉及动态审批链(如按金额自动升级审批)
企业级区块链平台Hyperchain核心原理剖析
boyedu
区块链 区块链 企业级区块链平台 Hyperchain
Hyperchain作为国产自主可控的企业级联盟区块链平台,其核心原理围绕高性能共识、隐私保护、智能合约引擎及可扩展架构展开,通过多模块协同实现企业级区块链网络的高效部署与安全运行。以下从核心架构、关键技术、性能优化、安全机制、应用场景五个维度展开剖析:一、核心架构:分层解耦与模块化设计Hyperchain采用分层架构,将区块链功能解耦为独立模块,支持灵活组合与扩展:P2P网络层由验证节点(VP)
Aop +反射 实现方法版本动态切换
需求分析在做技术选型的时候一直存在着两个声音,mongo作为数据库比较mysql好,mysql做为该数据比mongo好。当然不同数据库都有有着自己的优势,我们在做技术选型的时候无非就是做到对数据库的扬长避短。mysql最大的优势就是支持事务,事务的五大特性保证的业务可靠性,随之而来的就是事务会产生的问题:脏读、幻读、不可重复度,当然我们也会使用不同的隔离级别来解决。(最典型的业务问题:银行存取钱)
最新阿里四面面试真题46道:面试技巧+核心问题+面试心得
风平浪静如码
前言做技术的有一种资历,叫做通过了阿里的面试。这些阿里Java相关问题,都是之前通过不断优秀人才的铺垫总结的,先自己弄懂了再去阿里面试,不然就是去丢脸,被虐。希望对大家帮助,祝面试成功,有个更好的职业规划。一,阿里常见技术面1、微信红包怎么实现。2、海量数据分析。3、测试职位问的线程安全和非线程安全。4、HTTP2.0、thrift。5、面试电话沟通可能先让自我介绍。6、分布式事务一致性。7、ni
深入理解汇编语言子程序设计与系统调用
网安spinage
汇编语言 开发语言 汇编 算法
本文将全面解析汇编语言中子程序设计的核心技术以及系统调用的实现方法,涵盖参数传递的多种方式、堆栈管理、API调用等关键知识点,并提供实际案例演示。一、子程序设计:参数传递的艺术1.寄存器传参:高效简洁.386.modelflat,stdcalloptioncasemap:none.dataxdd5;定义变量ydd6sumdd?.code;函数定义:addxy1addxy1procpushebpmo
编程算法:技术创新的引擎与业务增长的核心驱动力
在数字经济时代,算法已成为推动技术创新与业务增长的隐形引擎。从存内计算突破冯·诺依曼瓶颈,到动态规划优化万亿级金融交易,编程算法正在重塑产业竞争格局。一、存内计算:突破冯·诺依曼瓶颈的算法革命1.1存内计算的基本原理传统计算架构中90%的能耗消耗在数据搬运上。存内计算(Processing-in-Memory)通过直接在存储单元执行计算,实现能效10-100倍提升:#传统计算vs存内计算能耗模型i
基于redis的Zset实现作者的轻量级排名
周童學
Java redis 数据库 缓存
基于redis的Zset实现轻量级作者排名系统在今天的技术架构中,Redis是一种广泛使用的内存数据存储系统,尤其在需要高效检索和排序的场景中表现优异。在本篇博客中,我们将深入探讨如何使用Redis的有序集合(ZSet)构建一个高效的笔记排行榜系统,并提供相关代码示例和详细的解析。1.功能背景与需求假设我们有一个笔记分享平台,用户可以发布各种笔记,系统需要根据用户发布的笔记数量来生成一个实时更新的
【项目实战】 容错机制与故障恢复:保障系统连续性的核心体系
本本本添哥
004 - 研效与DevOps运维工具链 002 - 进阶开发能力 分布式
在分布式系统中,硬件故障、网络波动、软件异常等问题难以避免。容错机制与故障恢复的核心目标是:通过主动检测故障、自动隔离风险、快速转移负载、重建数据一致性,最大限度减少故障对业务的影响,保障系统“持续可用”与“数据不丢失”。以下从核心机制、实现方式、典型案例等维度展开说明。一、故障检测:及时发现异常节点故障检测是容错的第一步,需通过多维度手段实时感知系统组件状态,确保故障被快速识别。1.健康检查与心
【 焦点咨询的“无为”】邹庆会,持续分享第690天,2020年1月23日
邹庆会
焦点课堂上,刘老师强调,焦点咨询师要“无为”,当时我就很困惑:我们“无为”,我们什么都不做,那来访者找我们做什么呢?那我们又怎么样来引领来访者呢?又怎么样让来访者在咨询当中有更多的收获呢?带着这个困惑,我逐渐在咨询中,包括在陪伴儿子的过程中,试着慢慢地放下期待、忘掉技术,寻找“无为”的感觉,寻找“无为”的痕迹,以及“无为”之后的一些效果的呈现。也慢慢的悟出一些自己的感受和体会。就像《道德经》中所说
5G基站信号加速器!AD8021ARZ-REEL7亚德诺 超低噪声高速电压放大器 专利失真消除技术!
深圳市尚想信息技术有限公司
5G通信 高速运放 ADI黑科技 8K视频 医疗超声
AD8021ARZ-REEL7ADI:重新定义高速放大器的性能极限!一、产品简介AD8021ARZ-REEL7是ADI(亚德诺半导体)推出的超低噪声高速电压反馈放大器,采用XFCB工艺和专利失真消除技术,专为4K/8K视频处理、医疗成像、5G通信等超高频应用设计。以1.8GHz带宽和0.1nV/√Hz超低噪声,成为高速信号调理的终极解决方案!二、五大颠覆性优势军工级信号保真度1.8GHz-3dB带
北斗短报文兜底、5G-A增强:AORO P1100三防平板构建应急通信网络
公网中断的灾区现场,泥石流阻断了最后一条光缆。一支救援队却在废墟间有序穿行,队长手中的三防平板正闪烁着北斗卫星信号,定位坐标与伤亡信息化作一行行短报文,穿透通信孤岛直达指挥中心。这是AOROP1100三防平板搭载的北斗短报文功能在应急救援中的真实场景,更代表了工业移动终端在极端环境下的能力跃迁。AOROP1100三防平板作为遨游通讯2025年推出的旗舰三防设备,AOROP1100三防平板的技术基底
猎板 PCB 控深槽工艺:5G 基站散热模块的关键支撑
猎板PCB黄浩
5G 运维 数据库
PCB控深槽工艺在5G基站散热模块中的关键作用:猎板PCB的技术突破在5G基站的密集高频信号与高功率运行环境下,散热性能直接决定了设备的稳定性和寿命。猎板PCB通过创新性的控深槽工艺(控深锣/控深铣),结合材料科学与结构优化,为5G基站散热模块提供了高精度、高可靠性的解决方案,有效攻克了高热负荷下的技术瓶颈。一、5G基站散热的核心挑战热负荷激增:5G基站的射频功放(PA)、电源管理模块等器件功耗显
Redis + Caffeine 实现高效的两级缓存架构
周童學
Java 缓存 redis 架构
Redis+Caffeine实现高效的两级缓存架构引言在现代高并发系统中,缓存是提升系统性能的关键组件之一。传统的单一缓存方案往往难以同时满足高性能和高可用性的需求。本文将介绍如何结合Redis和Caffeine构建一个高效的两级缓存系统,并通过三个版本的演进展示如何逐步优化代码结构。项目源代码:github地址、gitee地址两级缓存架构概述两级缓存通常由本地缓存(如Caffeine)和分布式缓
uniapp微信小程序 - 详解微信小程序平台用户授权登录全流程,uniapp v3版本中小程序端开发下用户点击登录后获取手机号/昵称/性别/头像等信息完成登录(提供完整示例代码,一键复制开箱即用)
十一猫咪爱养鱼
前端组件与功能(开箱即用) uniapp常见问题解决 uniapp vue3 uniapp3小程序授权登录 微信小程序登录获取用户信息教程 获取用户昵称手机号头像信息登录 vue3版本小程序平台授权登录 uniap小程序端用户登录流程 uni完整的小程序平台登录源码
效果图在uniapp微信小程序端开发中,超详细实现用户授权登录完整功能源码,用户授权后获取手机号/昵称/头像/性别等,提供完整思路流程及逻辑讲解。uniappVue3和Vue2都能用,你也可以直接复制粘贴,然后改下参数放到你的项目中去就行。整体思路做功能之前,先来看一下整体流程是
元宇宙中的视觉技术:虚拟化身与场景生成
xcLeigh
计算机视觉CV 元宇宙 虚拟化身 场景生成 AIGC 数字孪生
元宇宙中的视觉技术:虚拟化身与场景生成前言一、元宇宙与视觉技术的深度关联1.1元宇宙概念深度剖析1.2视觉技术:元宇宙的“灵魂之窗”二、虚拟化身:数字世界的“第二自我”2.1虚拟化身技术的深度解析2.1.1核心技术构成2.1.2技术实现原理与流程2.2虚拟化身的应用领域及案例展示2.2.1游戏娱乐领域2.2.2教育培训领域三、场景生成:构建元宇宙的虚拟天地3.1场景生成技术全景透视3.1.1关键技
处于停机等非正常状态_设备非正常停机管理指导办法
设备非正常停机管理指导办法一、设备非正常停机的范围:1、维护、维修不良:未遵守设备维护及维修规程,导致维护、维修质量无法满足设备运行的技术、环境要求而造成的设备停机,例如:未按维护保养计划保养、维护质量不到位、违章检修,故障维修不彻底,润滑缺油或变质等。2、违章操作:未按照设备操作规程及作业文件等操作而造成的设备停机。3、设备点检缺失:是指设备操作者及维修人员未严格按照点检标准有效地对设备各部位进
DPDK 技术详解:榨干网络性能的“瑞士军刀”
你是否曾感觉,即使拥有顶级的服务器和万兆网卡,你的网络应用也总是“喂不饱”硬件,性能总差那么一口气?传统的网络处理方式,就像在高速公路上设置了太多的收费站和检查点,限制了数据包的“奔跑”速度。今天,我们要深入探讨一个能够打破这些瓶颈,让你的网络应用快到飞起的“黑科技”——DPDK(DataPlaneDevelopmentKit,数据平面开发套件)。这不仅仅是一个工具包,更是一种全新的网络处理哲学。
【Coze搞钱实战】3. 避坑指南:对话流设计中的6个致命错误(真实案例)
AI_DL_CODE
Coze平台 对话流设计 客服Bot避坑 用户流失 封号风险 智能客服配置 故障修复指南
摘要:对话流设计是智能客服Bot能否落地的核心环节,直接影响用户体验与业务安全。本文基于50+企业Bot部署故障分析,聚焦导致用户流失、投诉甚至封号的6大致命错误:无限循环追问、人工移交超时、敏感词过滤缺失、知识库冲突、未处理否定意图、跨平台适配失败。通过真实案例拆解每个错误的表现形式、技术根因及工业级解决方案,提供可直接复用的Coze配置代码、工作流模板和检测工具。文中包含对话流健康度检测工具使
Deepseek技术深化:驱动大数据时代颠覆性变革的未来引擎
荣华富贵8
spring boot 搜索引擎 后端 缓存 redis
在大数据时代,信息爆炸和数据驱动的决策逐渐重塑各行各业。作为一项前沿技术,Deepseek正在引领新一轮技术革新,颠覆传统数据处理与分析方式。本文将从理论原理、应用场景和前沿代码实践三个层面,深入剖析Deepseek技术如何为大数据时代提供颠覆性变革的解决方案。一、技术背景与核心思想1.1大数据挑战与机遇在数据量呈指数级增长的背景下,传统数据处理方法面临数据存储、计算效率和信息提取精度的诸多挑战。
大模型量化终极对决:FP8 vs AWQ INT4,谁才是性能与精度的王者?
曦紫沐
大模型 人工智能 大模型量化 FP8 AWQ_INT4
摘要在大模型部署与优化中,量化技术是突破性能瓶颈的关键。FP8量化与AWQINT4量化作为当前主流方案,分别以“高精度”和“极致压缩”为核心优势。本文通过表格对比二者的数据格式、精度损失、硬件依赖及适用场景,助您在不同需求下精准选择最优方案。一、数据格式:浮点与整数的底层差异FP8量化采用浮点数(FP8),包含E4M3(4位阶码+3位尾数)和E5M2(5位阶码+2位尾数)两种格式,保留动态范围;而
分布式链路追踪系统架构设计:从理论到企业级实践
ma451152002
java 分布式 系统架构
分布式链路追踪系统架构设计:从理论到企业级实践本文深入探讨分布式链路追踪系统的架构设计原理、关键技术实现和企业级应用实践,为P7架构师提供完整的技术方案参考。目录引言:分布式链路追踪的重要性核心概念与技术原理系统架构设计数据模型与协议标准核心组件架构设计性能优化与扩展性设计企业级实施策略技术选型与对比分析监控与运维体系未来发展趋势P7架构师面试要点引言:分布式链路追踪的重要性微服务架构下的挑战在现
中原焦点团队党秀丽分享276天,约练268次,5月29日,周五
润物无声dang
第十二次课,答疑解惑。1.咨询约练过程中遇到来访者上来就说想处理情绪,可是聊的过程中他又不想具体聊他的情绪怎么产生的,多久了,就是希望用外化技术处理他的情绪,我除了好奇是什么让他希望用外化呢,也用阳谋告诉他,外化前也是需要具体的聊聊这个情绪的,还可以怎么做呢?给他安全感这一块大概怎么做呢?不想具体说有他的道理,聊聊情绪大概是什么事儿?专业的认识,专业度的认可。不带功利心,转介几次的不太好,信任程度
Android 媒体播放开发完全指南
安卓开发者
Android Jetpack android 媒体 python
引言在当今移动应用生态中,媒体播放功能已成为许多应用的核心组成部分。无论是音乐流媒体应用、视频平台、播客客户端还是游戏应用,都需要强大的媒体播放能力。Android平台提供了丰富的API来支持各种媒体播放场景。本文将全面介绍Android媒体播放的开发技术,从基础到高级功能实现。一、Android媒体播放基础1.1支持的媒体格式Android原生支持多种媒体格式:音频:MP3、AAC、FLAC、W
Android Slices:让应用功能在系统级交互中触手可及
安卓开发者
Android Jetpack android 交互 gitee
引言在当今移动应用生态中,用户每天要面对数十个甚至上百个应用的选择,如何让自己的应用在关键时刻触达用户,成为开发者面临的重要挑战。Google在Android9Pie中引入的Slices技术,正是为了解决这一痛点而生。本文将全面介绍AndroidSlices的概念、实现方法、应用场景以及最佳实践,帮助开发者掌握这一提升用户参与度的强大工具。什么是AndroidSlices?AndroidSlice
项目中 枚举与注解的结合使用
飞翔的马甲
java enum annotation
前言:版本兼容,一直是迭代开发头疼的事,最近新版本加上了支持新题型,如果新创建一份问卷包含了新题型,那旧版本客户端就不支持,如果新创建的问卷不包含新题型,那么新旧客户端都支持。这里面我们通过给问卷类型枚举增加自定义注解的方式完成。顺便巩固下枚举与注解。
一、枚举
1.在创建枚举类的时候,该类已继承java.lang.Enum类,所以自定义枚举类无法继承别的类,但可以实现接口。
【Scala十七】Scala核心十一:下划线_的用法
bit1129
scala
下划线_在Scala中广泛应用,_的基本含义是作为占位符使用。_在使用时是出问题非常多的地方,本文将不断完善_的使用场景以及所表达的含义
1. 在高阶函数中使用
scala> val list = List(-3,8,7,9)
list: List[Int] = List(-3, 8, 7, 9)
scala> list.filter(_ > 7)
r
web缓存基础:术语、http报头和缓存策略
dalan_123
Web
对于很多人来说,去访问某一个站点,若是该站点能够提供智能化的内容缓存来提高用户体验,那么最终该站点的访问者将络绎不绝。缓存或者对之前的请求临时存储,是http协议实现中最核心的内容分发策略之一。分发路径中的组件均可以缓存内容来加速后续的请求,这是受控于对该内容所声明的缓存策略。接下来将讨web内容缓存策略的基本概念,具体包括如如何选择缓存策略以保证互联网范围内的缓存能够正确处理的您的内容,并谈论下
crontab 问题
周凡杨
linux crontab unix
一: 0481-079 Reached a symbol that is not expected.
背景:
*/5 * * * * /usr/IBMIHS/rsync.sh
让tomcat支持2级域名共享session
g21121
session
tomcat默认情况下是不支持2级域名共享session的,所有有些情况下登陆后从主域名跳转到子域名会发生链接session不相同的情况,但是只需修改几处配置就可以了。
打开tomcat下conf下context.xml文件
找到Context标签,修改为如下内容
如果你的域名是www.test.com
<Context sessionCookiePath="/path&q
web报表工具FineReport常用函数的用法总结(数学和三角函数)
老A不折腾
Web finereport 总结
ABS
ABS(number):返回指定数字的绝对值。绝对值是指没有正负符号的数值。
Number:需要求出绝对值的任意实数。
示例:
ABS(-1.5)等于1.5。
ABS(0)等于0。
ABS(2.5)等于2.5。
ACOS
ACOS(number):返回指定数值的反余弦值。反余弦值为一个角度,返回角度以弧度形式表示。
Number:需要返回角
linux 启动java进程 sh文件
墙头上一根草
linux shell jar
#!/bin/bash
#初始化服务器的进程PId变量
user_pid=0;
robot_pid=0;
loadlort_pid=0;
gateway_pid=0;
#########
#检查相关服务器是否启动成功
#说明:
#使用JDK自带的JPS命令及grep命令组合,准确查找pid
#jps 加 l 参数,表示显示java的完整包路径
#使用awk,分割出pid
我的spring学习笔记5-如何使用ApplicationContext替换BeanFactory
aijuans
Spring 3 系列
如何使用ApplicationContext替换BeanFactory?
package onlyfun.caterpillar.device;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import
Linux 内存使用方法详细解析
annan211
linux 内存 Linux内存解析
来源 http://blog.jobbole.com/45748/
我是一名程序员,那么我在这里以一个程序员的角度来讲解Linux内存的使用。
一提到内存管理,我们头脑中闪出的两个概念,就是虚拟内存,与物理内存。这两个概念主要来自于linux内核的支持。
Linux在内存管理上份为两级,一级是线性区,类似于00c73000-00c88000,对应于虚拟内存,它实际上不占用
数据库的单表查询常用命令及使用方法(-)
百合不是茶
oracle 函数 单表查询
创建数据库;
--建表
create table bloguser(username varchar2(20),userage number(10),usersex char(2));
创建bloguser表,里面有三个字段
&nbs
多线程基础知识
bijian1013
java 多线程 thread java多线程
一.进程和线程
进程就是一个在内存中独立运行的程序,有自己的地址空间。如正在运行的写字板程序就是一个进程。
“多任务”:指操作系统能同时运行多个进程(程序)。如WINDOWS系统可以同时运行写字板程序、画图程序、WORD、Eclipse等。
线程:是进程内部单一的一个顺序控制流。
线程和进程
a. 每个进程都有独立的
fastjson简单使用实例
bijian1013
fastjson
一.简介
阿里巴巴fastjson是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库;包括“序列化”和“反序列化”两部分,它具备如下特征:  
【RPC框架Burlap】Spring集成Burlap
bit1129
spring
Burlap和Hessian同属于codehaus的RPC调用框架,但是Burlap已经几年不更新,所以Spring在4.0里已经将Burlap的支持置为Deprecated,所以在选择RPC框架时,不应该考虑Burlap了。
这篇文章还是记录下Burlap的用法吧,主要是复制粘贴了Hessian与Spring集成一文,【RPC框架Hessian四】Hessian与Spring集成
 
【Mahout一】基于Mahout 命令参数含义
bit1129
Mahout
1. mahout seqdirectory
$ mahout seqdirectory
--input (-i) input Path to job input directory(原始文本文件).
--output (-o) output The directory pathna
linux使用flock文件锁解决脚本重复执行问题
ronin47
linux lock 重复执行
linux的crontab命令,可以定时执行操作,最小周期是每分钟执行一次。关于crontab实现每秒执行可参考我之前的文章《linux crontab 实现每秒执行》现在有个问题,如果设定了任务每分钟执行一次,但有可能一分钟内任务并没有执行完成,这时系统会再执行任务。导致两个相同的任务在执行。
例如:
<?
//
test
.php
java-74-数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
bylijinnan
java
public class OcuppyMoreThanHalf {
/**
* Q74 数组中有一个数字出现的次数超过了数组长度的一半,找出这个数字
* two solutions:
* 1.O(n)
* see <beauty of coding>--每次删除两个不同的数字,不改变数组的特性
* 2.O(nlogn)
* 排序。中间
linux 系统相关命令
candiio
linux
系统参数
cat /proc/cpuinfo cpu相关参数
cat /proc/meminfo 内存相关参数
cat /proc/loadavg 负载情况
性能参数
1)top
M:按内存使用排序
P:按CPU占用排序
1:显示各CPU的使用情况
k:kill进程
o:更多排序规则
回车:刷新数据
2)ulimit
ulimit -a:显示本用户的系统限制参
[经营与资产]保持独立性和稳定性对于软件开发的重要意义
comsci
软件开发
一个软件的架构从诞生到成熟,中间要经过很多次的修正和改造
如果在这个过程中,外界的其它行业的资本不断的介入这种软件架构的升级过程中
那么软件开发者原有的设计思想和开发路线
在CentOS5.5上编译OpenJDK6
Cwind
linux OpenJDK
几番周折终于在自己的CentOS5.5上编译成功了OpenJDK6,将编译过程和遇到的问题作一简要记录,备查。
0. OpenJDK介绍
OpenJDK是Sun(现Oracle)公司发布的基于GPL许可的Java平台的实现。其优点:
1、它的核心代码与同时期Sun(-> Oracle)的产品版基本上是一样的,血统纯正,不用担心性能问题,也基本上没什么兼容性问题;(代码上最主要的差异是
java乱码问题
dashuaifu
java乱码问题 js中文乱码
swfupload上传文件参数值为中文传递到后台接收中文乱码 在js中用setPostParams({"tag" : encodeURI( document.getElementByIdx_x("filetag").value,"utf-8")});
然后在servlet中String t
cygwin很多命令显示command not found的解决办法
dcj3sjt126com
cygwin
cygwin很多命令显示command not found的解决办法
修改cygwin.BAT文件如下
@echo off
D:
set CYGWIN=tty notitle glob
set PATH=%PATH%;d:\cygwin\bin;d:\cygwin\sbin;d:\cygwin\usr\bin;d:\cygwin\usr\sbin;d:\cygwin\us
[介绍]从 Yii 1.1 升级
dcj3sjt126com
PHP yii2
2.0 版框架是完全重写的,在 1.1 和 2.0 两个版本之间存在相当多差异。因此从 1.1 版升级并不像小版本间的跨越那么简单,通过本指南你将会了解两个版本间主要的不同之处。
如果你之前没有用过 Yii 1.1,可以跳过本章,直接从"入门篇"开始读起。
请注意,Yii 2.0 引入了很多本章并没有涉及到的新功能。强烈建议你通读整部权威指南来了解所有新特性。这样有可能会发
Linux SSH免登录配置总结
eksliang
ssh-keygen Linux SSH免登录认证 Linux SSH互信
转载请出自出处:http://eksliang.iteye.com/blog/2187265 一、原理
我们使用ssh-keygen在ServerA上生成私钥跟公钥,将生成的公钥拷贝到远程机器ServerB上后,就可以使用ssh命令无需密码登录到另外一台机器ServerB上。
生成公钥与私钥有两种加密方式,第一种是
手势滑动销毁Activity
gundumw100
android
老是效仿ios,做android的真悲催!
有需求:需要手势滑动销毁一个Activity
怎么办尼?自己写?
不用~,网上先问一下百度。
结果:
http://blog.csdn.net/xiaanming/article/details/20934541
首先将你需要的Activity继承SwipeBackActivity,它会在你的布局根目录新增一层SwipeBackLay
JavaScript变换表格边框颜色
ini
JavaScript html Web html5 css
效果查看:http://hovertree.com/texiao/js/2.htm代码如下,保存到HTML文件也可以查看效果:
<html>
<head>
<meta charset="utf-8">
<title>表格边框变换颜色代码-何问起</title>
</head>
<body&
Kafka Rest : Confluent
kane_xie
kafka REST confluent
最近拿到一个kafka rest的需求,但kafka暂时还没有提供rest api(应该是有在开发中,毕竟rest这么火),上网搜了一下,找到一个Confluent Platform,本文简单介绍一下安装。
这里插一句,给大家推荐一个九尾搜索,原名叫谷粉SOSO,不想fanqiang谷歌的可以用这个。以前在外企用谷歌用习惯了,出来之后用度娘搜技术问题,那匹配度简直感人。
环境声明:Ubu
Calender不是单例
men4661273
单例 Calender
在我们使用Calender的时候,使用过Calendar.getInstance()来获取一个日期类的对象,这种方式跟单例的获取方式一样,那么它到底是不是单例呢,如果是单例的话,一个对象修改内容之后,另外一个线程中的数据不久乱套了吗?从试验以及源码中可以得出,Calendar不是单例。
测试:
Calendar c1 =
线程内存和主内存之间联系
qifeifei
java thread
1, java多线程共享主内存中变量的时候,一共会经过几个阶段,
lock:将主内存中的变量锁定,为一个线程所独占。
unclock:将lock加的锁定解除,此时其它的线程可以有机会访问此变量。
read:将主内存中的变量值读到工作内存当中。
load:将read读取的值保存到工作内存中的变量副本中。
schedule和scheduleAtFixedRate
tangqi609567707
java timer schedule
原文地址:http://blog.csdn.net/weidan1121/article/details/527307
import java.util.Timer;import java.util.TimerTask;import java.util.Date;
/** * @author vincent */public class TimerTest {
 
erlang 部署
wudixiaotie
erlang
1.如果在启动节点的时候报这个错 :
{"init terminating in do_boot",{'cannot load',elf_format,get_files}}
则需要在reltool.config中加入
{app, hipe, [{incl_cond, exclude}]},
2.当generate时,遇到:
ERROR