vue3中标签的ref属性

组合API-ref属性

vue2.x中,可以通过给元素添加ref='xxx'属性,然后在代码中通过this.$refs.xxx获取到对应的元素

然而在vue3中时没有$refs这个东西的,因此vue3中通过ref属性获取元素就不能按照vue2的方式来获取。

目标:掌握使用ref属性绑定DOM或组件

获取DOM或者组件实例可以使用ref属性,写法和vue2.0需要区分开

  • 基于Vue2的方式操作ref-----数组场景
<ul><li v-for="(item, index) in list" ref="fruits" :key="index">{{ item }}</li><!-- <my-com :key='index' v-for='index in 8' ref='info'></my-com> -->
</ul>
<button @click="handleClick">点击</button>
methods: {handleClick () {const fruits = this.$refs.fruitsconsole.log(fruits[1].innerHTML)}
}
// 批量绑定同名的ref (主要就是v-for场景中使用 ref),此时通过[this.$refs.名称]访问的值应该是一个数组,数组中包含每一个DOM元素
// ref绑定组件的用法与之类似

总结:

  1. Vue2中可以通过ref直接操作单个DOM和组件 this.$refs.info.innerHTML
  2. Vue2中可以批量通过ref操作DOM和组件 this.$refs.fruit[0].innerHTML
  • ref操作单个DOM元素----Vue3的规则
<template><div><div>ref操作DOM和组件</div><hr><!-- 3、模板中绑定上述返回的数据 --><div ref='info'>hello</div><!-- <my-com ref='info'>hello</my-com> --><ul><li ref='fruit' v-for='item in fruits' :key='item.id'>{{item.name}}</li></ul><button @click='handleClick'>点击</button></div>
</template>

<script>
import { ref } from 'vue'

export default {
name: 'App',
setup () {
// this. r e f s . i n f o . i n n e r H T M L / / t h i s . refs.info.innerHTML // this. refs.info.innerHTML//this.refs.fruit 的值应该是一个数组,数组中放的DOM元素
// this.$refs.fruit[0].innerHTML —> apple
// -----------------------------------------
// Vue3中通过ref操作DOM
// 1、定义一个响应式变量
const info = ref(null)

const fruits &#61; ref([{id: 1,name: &#39;apple&#39;
}, {id: 2,name: &#39;orange&#39;
}])const handleClick &#61; () &#61;&gt; {// 4、此时可以通过info变量操作DOMconsole.log(info.value.innerHTML)
}// 2、把变量返回给模板使用
return { fruits, info, handleClick }

}
}
</script>

<style lang="less">
</style>

总结:操作单个DOM或者组件的流程

  1. 定义一个响应式变量
  2. 把变量返回给模板使用
  3. 模板中绑定上述返回的数据
  4. 可以通过info变量操作DOM或者组件实例
  • 获取v-for遍历的DOM或者组件
<template><div><div>ref操作DOM和组件</div><hr><!-- 3、模板中绑定上述返回的数据 --><div ref='info'>hello</div><!-- <my-com ref='info'>hello</my-com> --><ul><li :ref='setFruits' v-for='item in fruits' :key='item.id'>{{item.name}}</li></ul><button @click='handleClick'>点击</button></div>
</template>

<script>
import { ref } from ‘vue’

export default {
name: ‘App’,
setup () {
// this. r e f s . i n f o . i n n e r H T M L < / s p a n > < s p a n c l a s s = " t o k e n c o m m e n t " > / / t h i s . refs.info.innerHTML</span> <span class="token comment">// this. refs.info.innerHTML</span><spanclass="tokencomment">//this.refs.fruit 的值应该是一个数组,数组中放的DOM元素
// this.$refs.fruit[0].innerHTML —> apple
// -----------------------------------------
// Vue3中通过ref操作DOM
// 1、定义一个响应式变量
const info = ref(null)

<span class="token keyword">const</span> fruits <span class="token operator">&#61;</span> <span class="token function">ref</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{<!-- --></span><span class="token literal-property property">id</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span><span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">&#39;apple&#39;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{<!-- --></span><span class="token literal-property property">id</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span><span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">&#39;orange&#39;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{<!-- --></span><span class="token literal-property property">id</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span><span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token string">&#39;pineapple&#39;</span>
<span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token comment">// 定义操作DOM的函数</span>
<span class="token keyword">const</span> arr <span class="token operator">&#61;</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
<span class="token keyword">const</span> <span class="token function-variable function">setFruits</span> <span class="token operator">&#61;</span> <span class="token punctuation">(</span><span class="token parameter">el</span><span class="token punctuation">)</span> <span class="token operator">&#61;&gt;</span> <span class="token punctuation">{<!-- --></span><span class="token comment">// 参数el表示单个DOM元素</span>arr<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>el<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token keyword">const</span> <span class="token function-variable function">handleClick</span> <span class="token operator">&#61;</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">&#61;&gt;</span> <span class="token punctuation">{<!-- --></span><span class="token comment">// 4、此时可以通过info变量操作DOM</span><span class="token comment">// console.log(info.value.innerHTML)</span>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>arr<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token comment">// 2、把变量返回给模板使用</span>
<span class="token keyword">return</span> <span class="token punctuation">{<!-- --></span> fruits<span class="token punctuation">,</span> info<span class="token punctuation">,</span> handleClick<span class="token punctuation">,</span> setFruits <span class="token punctuation">}</span>

}
}
</script>

<style lang=“less”>
</style>

总结:ref批量操作元素的流程

  1. 定义一个函数
  2. 把该函数绑定到ref上(必须动态绑定
  3. 在函数中可以通过参数得到单个元素,这个元素一般可以放到数组中
  4. 通过上述数组即可操作批量的元素
Vue3超详细的 ref()用法,看这一篇就够了
热门推荐
EchoLiner的博客
04-30 7万+
ref()接受一个内部值,返回一个响应式的可更改的 ref 对象,此对象只有一个指向其内部值的 属性.value。 ref() 将传入参数的值包装为一个带 .value 属性ref 对象。
vue3 ref函数用法
wuxing164的博客
11-19 4万+
1.在setup函数 ,可以 使用 ref函数,用于创建一个响应式数据,当数据发生改变时, Vue会自动更新UI

<template>
<div>
<h1>{{mycount}}</h1>
<button @click="changeMyCount">changeMyCount</button>
</div>
</template>

<script>
i…


Vue3入门到精通-- ref以及 ref相关函数,做了6年前端开发
最新发布
2401_83740189的博客
03-21 588
console.log(“obj”, obj.name);console.log(“ ref”, stateTo ref.value);// obj ls// ref lsto ref----------{{ stateTo ref }}let obj = { name: “syl” };let stateTo ref = to Ref(obj, “name”);stateTo ref.value = “zs”;console.log(“obj”, obj.name);console.log(“ ref”, stateTo
	</dl>
vue3 ref使用
CYL_2021的博客
09-18 6719
ref使用
VUE3 ref函数和reactive函数
l1830473688的博客
07-17 6234
VUE3.0 ref 函数,reactive 函数
vue 使用 refs定位dom出现undefined的解决方法
11-29
之前在公司做项目,一直感觉用 ref来定位dom节点挺方便的。但是期间遇到了一个问题,就是在mounted(){}钩子里面 使用this.$ refs.xxx,打印出来的却是undefined? 于是我就对比了一下之前 使用 ref定位的. vue文件,发现了他们之间的区别。 我们要想知道为什么会定位不到某个DOM节点,我们首先要理解mounted(){}这个钩子函数是用来做什么的。 下面是 vue官方给出的 vue生命周期(部分),正如官方所说的一样,一开始不必先理解,不过随这你的学习与 使用,他的参考价值会越来越高。   原来,mounted阶段,DOM结构准备就绪,但是这里的准备就绪需要特别说明一下: D
vue ref和$ refs的 使用
01-21
ref:被用来给元素或子组件注册引用信息,引用信息将会注册在父组件的$ refs对象上。如果在普通的DOM元素上 使用,那么指向的就是普通的DOM元素。

ref 有三种用法:
1、ref 加在普通的元素上,用this.ref.name 获取到的是dom元素
2、ref 加在子组件上,用this.ref.name 获取到的是组件实例,可以使用组件的所有方法。
3、如何利用 v-for 和 ref 获取一组数组或者dom 节点

普通的DOM元素上使用

<input type=textref=TEXT/ >
<button @click=add>


vue3 ref 属性
greed
09-10 3170
vue3 ref 属性 操作单个DOM元素

操作单个DOM或者组件的流程

定义一个响应式变量
把变量返回给模板使用
模板绑定上述返回的数据
可以通过info变量操作DOM或者组件实例

<template>
<div>
<div>ref操作DOM和组件</div>
<hr>
<!-- 3、模板绑定上述返回的数据 -->
<div ref='info'>hello</div&g


vue3 ref的理解
weixin_47886687的博客
01-21 5万+
1.什么是 ref?

ref和reactive一样,也是用来实现响应式数据的方法
由于reactive必须传递一个对象,所以在实际开发如果只是想让某个变量实现响应式的时候回非常麻烦
所以Vue3提供了ref方法实现简单值得监听

2.ref本质

ref底层其实还是reactive,所以当运行时系统会自动根据传入的ref转换成reactive.

3.ref注意点

vue使用ref的值不用通过value获取
在js使用ref的值必须通过value获取




Vue3 ref 属性详解
明天也要努力的博客
07-09 4万+
总结:在 Vue3 没有 $ refs,因此 Vue3 通过 ref 属性获取元素就不能按照 vue2 的 方式来获取。 Vue3 需要借助生命周期方法,因为在 setup 执行时,template 的元素还没挂载到页面上,所以必须在 mounted 之后才能获取到元素。 总结: 先申明 ref 响应式数据,再返回给模版 使用,模板 通过 ref 绑定数据; 总结: 先定义一个空数组,再定义一个函数获取元素,并把该函数绑定到 ref 上(必须动态绑定),最后在函数 可以通过参数得到单个元素,这个元素一般可以放
vue3 ref()
Sapling
11-07 9198
只有当嵌套在一个深层响应式对象内时,才会发生 ref 解包。如果将一个对象赋值给 ref,则这个对象会通过reactive()转为具有深层次的响应式对象。如果将一个新的 ref 赋值给另一个对象具有 ref 属性的 ,那么它会替换掉旧的 ref。接受一个值,返回一个响应式的,可以修改的 ref对象,这个对象只有一个。 属性进行修改,修改后的值也是响应式的,并且修改后会触发相关的副作用。一个 ref对象嵌套在一个响应式对象 属性访问时会自动解包。对于 属性值是 ref对象的对象,解构后也具有响应式。
Vue 使用 ref获取dom元素节点及组件内的数据和方法
01-20
一、获取dom元素节点 为元素添加一个 ref 属性属性的值可任取 以作为该节点的引用名 ref即为 reference(引用)的前三个字母

This is title
This is content

Vue实例的自带的$refs属性获取元素 用预先定义好的引用名来获取 即在页面ref属性定义的值

var vm=new <em>Vue</em>({el:&#39;#app&#39;,data:{},methods:{getElement(){console.log(this.$<em>ref</em>s.myti</div></a></div>
</div>
Vue 2 ref 属性使用方法及注意事项
08-30
主要给大家介绍了关于 Vue 2 ref 属性使用方法及注意事项的相关资料,文 通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
详解 Vueref特性的 使用
12-28
一、 ref的基本 使用 ref使用

<!-- vm.$<em>ref</em>s.p将会是DOM结点 -->
hello
<!-- vm.$<em>ref</em>s.child将会是子组件实例 -->

如果在普通的 DOM 元素上使用,引用指向的就是DOM 元素如果用在子组件上,引用就指向组件实例
深入理解 < e m > r e f < / e m > s 某组件的 <em>ref</em>s 某组件的 <em>ref</em>s某组件的refs含有该组件的所有ref,看下面的例子

hello
<child-component ref


vue 动态添加class类名的方法
10-18
今天小编就为大家分享一篇 vue 动态添加class类名的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
vue.js ref和$ refs的 使用及示例讲解
12-10
关于 ref和$ refs的用法及讲解, vue.js 文社区( https://cn. vuejs.org/v2/api/# ref )是这么讲解的: ref 被用来给元素或子组件注册引用信息,引用信息将会注册在父... ref可以直接加在HTML标签上,作为一个 属性存在
vue.js ref及$ refs的 使用方法解析
12-13
关于 ref和$ refs的用法及讲解, vue.js 文社区( https://cn. vuejs.org/v2/api/# ref )是这么讲解的: ref 被用来给元素或子组件注册引用信息,引用信息将会注册在父... ref可以直接加在HTML标签上,作为一个 属性存在
vue 获取dom元素内容的方法
08-30
本篇文章主要介绍了在 vue 获取dom元素内容的方法,可以通过给标签加 ref 属性,这里整理了详细的代码,有兴趣的可以了解一下
vue3 ref标签 属性 使用
06-11
Vue 3 ,` ref` 是一个新的响应式 API,用于在模板 引用一个元素或组件,并可以在 JavaScript 代码 访问该元素或组件的 属性和方法。

在模板,可以使用 <em>ref</em> 指令来创建一个 <em>ref</em> 对象,并将其绑定到一个元素或组件上。例如:

&lt;template&gt;&lt;div&gt;&lt;input type=&quot;text&quot; <em>ref</em>=&quot;input<em>Ref</em>&quot; /&gt;&lt;button @click=&quot;handleClick&quot;&gt;Click Me&lt;/button&gt;&lt;/div&gt;
&lt;/template&gt;&lt;script&gt;
import { <em>ref</em> } from &#39;<em>vue</em>&#39;;export default {setup() {const input<em>Ref</em> = <em>ref</em>(null);function handleClick() {input<em>Ref</em>.value.focus();}return {input<em>Ref</em>,handleClick,};},
};
&lt;/script&gt;

在这个例子,我们使用 <em>ref</em> 指令将 input 元素绑定到 input<em>Ref</em> 变量上。在 setup 函数,我们使用 <em>ref</em> 函数创建了一个 <em>ref</em> 对象,并将其初始值设置为 null。然后,我们在 handleClick 函数访问了 input<em>Ref</em>.value,并调用了 focus 方法,以便将焦点设置到 input 元素上。

需要注意的是,在 Vue 3 <em>ref</em> 不再返回一个对象,而是返回一个包含 value 属性的普通 JavaScript 对象。因此,在访问 <em>ref</em> 对象的属性和方法时,需要使用 .value 来访问其值。

另外,在 Vue 3 <em>ref</em> 还可以用于引用组件,例如:

&lt;template&gt;&lt;div&gt;&lt;MyComponent <em>ref</em>=&quot;myComponent<em>Ref</em>&quot; /&gt;&lt;button @click=&quot;handleClick&quot;&gt;Click Me&lt;/button&gt;&lt;/div&gt;
&lt;/template&gt;&lt;script&gt;
import { <em>ref</em> } from &#39;<em>vue</em>&#39;;
import MyComponent from &#39;./MyComponent.<em>vue</em>&#39;;export default {components: {MyComponent,},setup() {const myComponent<em>Ref</em> = <em>ref</em>(null);function handleClick() {myComponent<em>Ref</em>.value.someMethod();}return {myComponent<em>Ref</em>,handleClick,};},
};
&lt;/script&gt;

在这个例子,我们使用 <em>ref</em> 指令将 MyComponent 组件绑定到 myComponent<em>Ref</em> 变量上。在 setup 函数,我们使用 <em>ref</em> 函数创建了一个 <em>ref</em> 对象,并将其初始值设置为 null。然后,我们在 handleClick 函数访问了 myComponent<em>Ref</em>.value,并调用了 someMethod 方法,以便调用 MyComponent 组件的某个方法。


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unittest_parameterized批量测试测试用例

import unittest from parameterized import parameterizeddef add(x, y):return xy"""问题&#xff1a;如果有三组数据需要测试&#xff1f;[(1,1,2), (1,2,3), (0,3,3)] """def get_data():return [(1, 2, 3), (3, 0, 3), (2, 1, 3)]# 定义测试…

win10安装DHCP服务--用于2台机器之间搭建简易网络来进入目标机器修改配置

前言&#xff1a; 客户多了&#xff0c;往往会出现各种突发情况。 比如一个客户现场没有DHCP&#xff0c;没有显示器&#xff0c;键盘。 你只有一台笔记本的情况下要配置目标机器的网络。要如何配置&#xff1f;&#xff1f; 这时候就可以使用这篇博客提供的方式了。 Windows…

低功耗UPF设计的经典案列分享

案例1 分享个例子&#xff0c;景芯A72低功耗设计&#xff0c;DBG domain的isolation为何用VDDS_maia_noncpu供电而不是TOP的VDD&#xff1f; 答&#xff1a;因为dbg的上一级是noncpu&#xff0c;noncpu下面分成dbg和两个tbnk。 案例2 景芯A72的低功耗&#xff0c;请问&#…

LangChain-RAG学习之 文档加载器

目录 一、实现原理 二、文档加载器的选择 (一).PDF 加载本地文件 可能需要的环境配置 (二).CSV 1、使用每个文档一行的 CSV 数据加载 CSVLoader 2、自定义 csv 解析和加载 &#xff08;csv_args 3、指定用于 标识文档来源的 列&#xff08;source_column (三)、文件目…

【数据可视化-02】Seaborn图形实战宝典

Seaborn介绍 Seaborn是一个基于Python的数据可视化库&#xff0c;它建立在matplotlib的基础之上&#xff0c;为统计数据的可视化提供了高级接口。Seaborn通过简洁美观的默认样式和绘图类型&#xff0c;使数据可视化变得更加简单和直观。它特别适用于那些想要创建具有吸引力且信…

(数据分析方法)长期趋势分析

目录 一、定义 二、目的 三、方法 1、移动平均法 (1)、简单移动平均法 (2)、加权移动平均法 (3)、指数平滑法 2、最小二乘法 3、线性回归 1、数据预处理 2、观察数据分布建立假设模型 3、定义损失函数 4、批量梯度下降 5、优化 4、LSTM 时序分析 5、特征工程 一…

重写muduo之EPollPoller

1、EPollPoller.h EPollPoller的主要实现&#xff1a;作为poller的派生类&#xff0c;把基类给派生类保留的这些纯虚函数的接口实现出来。 override表示在派生类里面&#xff0c;这些方法是覆盖方法。必须由编译器来保证在基类里面一定有这些函数的接口的声明。在派生类要重写…

动态库和静态库

动态库与静态库 库是写好的现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说库是一种可执行代码的二进制形式&#xff0c;可以被操作…

灌溉机器人 状压dp

灌溉机器人 题目描述 农田灌溉是一项十分费体力的农活&#xff0c;特别是大型的农田。小明想为农民伯伯们减轻农作负担&#xff0c;最近在研究一款高科技——灌溉机器人。它可以在远程电脑控制下&#xff0c;给农田里的作物进行灌溉。 现在有一片 N 行 M 列的农田。农田的土…

[Java EE] 多线程(八):CAS问题与JUC包

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏:&#x1f355; Collection与数据结构 (90平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 &#x1f9c0;Java …

8个细节决定你的活动策划推广成败-华媒舍

活动策划和推广对于一个成功的活动来说至关重要。许多因素会影响活动的成功与否&#xff0c;以下我将介绍8个关键细节&#xff0c;这些细节能够决定活动的策划与推广的成败。 1. 目标定位 活动策划必须明确目标。你需要确定你的活动是为了推广何种产品或服务&#xff0c;吸引什…

简述前后端分离架构案例

Hello , 这里是小恒不会java 。今晚1点写写关于RESTful接口的使用案例&#xff0c;本文会通过django原生js前后端分离的案例简单讲解。本文带你认识一下简化版的前后端分离架构 代码 本文案例代码在GitHub上 https://github.com/lmliheng/fontend前后端分离 先说说什么是前后…

rust将json字符串直接转为map对象或者hashmap对象

有些时候我们还真的不清楚返回的json数据里面到底有哪些数据&#xff0c;数据类型是什么等&#xff0c;这个时候就可以使用批处理的方式将json字符串转为一个对象&#xff0c;然后通过这个对象的get方法来获取json里面的数据。 pub async fn test_json(&self) {let json_st…

『项目整理』易CAR通项目说明文档-我的第一款APP

『项目整理』易CAR通项目说明文档-我的第一款APP 项目介绍功能介绍技术栈介绍实现效果如何运行备注 项目介绍 易CAR通项目是我的第一个Android项目。是一款结合了AR技术的模仿懂车帝的看车软件。因为是初学&#xff0c;所示实现的效果差强人意&#xff0c;很多的功能界面只实现…

【论文阅读】Learning Texture Transformer Network for Image Super-Resolution

Learning Texture Transformer Network for Image Super-Resolution 论文地址Abstract1. 简介2.相关工作2.1单图像超分辨率2.2 Reference-based Image Super-Resolution 3. 方法3.1. Texture TransformerLearnable Texture Extractor 可学习的纹理提取器。Relevance Embedding.…

nginxconfig.io项目nginx可视化配置--搭建-视频

项目地址 https://github.com/digitalocean/nginxconfig.io搭建视频 nginxconfig.io搭建 nginxconfig.io搭建 展示效果 找到这个项目需要的docker镜像&#xff0c;有项目需要的node的版本 docker pull node:20-alpine运行这个node容器,在主机中挂载一个文件夹到容器中 主机&a…

MATLAB 变换

MATLAB 变换&#xff08;Transforms&#xff09; MATLAB提供了用于处理诸如Laplace和Fourier变换之类的变换的命令。转换在科学和工程中用作简化分析和从另一个角度查看数据的工具。 例如&#xff0c;傅立叶变换允许我们将表示为时间函数的信号转换为频率函数。拉普拉斯变换使…

微搭低代码入门03页面管理

目录 1 创建页面2 页面布局3 页面跳转总结 上一篇我们介绍了应用的基本操作&#xff0c;掌握了应用的概念后接着我们需要掌握页面的常见操作。 1 创建页面 打开应用的编辑器&#xff0c;在顶部导航条点击创建页面图标 在创建页面的时候可以从空白新建&#xff0c;也可以使用模…

screen

sLinux&#xff1a;screen命令——命令行的窗口操作_screen命令关闭窗口-CSDN博客文章浏览阅读4.2k次。功能&#xff1a;管理命令行终端切换的软件&#xff0c;常用于远程连接Linux过程中&#xff0c;同时使用多个命令行窗口。在窗口运行中的程序&#xff0c;记住窗口名字前面的…

nodejs实战——搭建websocket服务器

本博客主要介绍websocket服务器库安装&#xff0c;并举了一个简单服务器例子。 服务器端使用websocket需要安装nodejs websocket。 cd 工程目录 # 此刻我们需要执行命令&#xff1a; sudo npm init上述命令创建package.json文件&#xff0c;系统会提示相关配置。 我们也可以使…