B061-ES6 NodeJS npm Vue

news2024/10/7 9:20:31

目录

      • ECMAScript6
        • 什么是ECMAScript
        • ECMAScript历史
        • 语法
          • 申明变量
          • 解构表达式
          • 箭头函数
          • 模块化
      • npm引出
      • nodejs安装
      • VUE
        • vue简介
        • 配置Terminal
        • vue入门
          • vue属性-el
          • vue属性-data
          • vue属性-methods
        • vue架构认识
        • vue表达式
          • vue-表达式-基础
          • vue-表达式-操作对象&数组
        • vue-指令
          • v-text & v-html
          • v-if
          • v-for
          • v-on & v-show
          • v-model

ECMAScript6

什么是ECMAScript

web1.0时代:

最初的网页以HTML为主,是纯静态的网页。网页是只读的,信息流只能从服务的到客户端单向流通。开发人员也只关心页面的样式和内容即可。

web2.0时代:

  • 1995年,网景工程师Brendan Eich 花了10天时间设计了JavaScript语言。
  • 1996年,微软发布了JScript,其实是JavaScript的逆向工程实现。
  • 1997年,为了统一各种不同script脚本语言,ECMA(欧洲计算机制造商协会)以JavaScript为基础,制定了ECMAscript标准规范。JavaScript和JScript都是ECMAScript的标准实现者,随后各大浏览器厂商纷纷实现了ECMAScript标准。

所以,ECMAScript是浏览器脚本语言的规范,javascript实现了该规范的一种前端脚本语言。

ECMAScript历史

2009年12月,ECMAScript 5 发布。
2011年6月,ECMAScript 5.1 发布。
2015年6月,ECMAScript 6,也就是 ECMAScript 2015 发布了。 并且从 ECMAScript 6 开始,开始采用年号来做版本。即 ECMAScript 2015,就是ECMAScript6。

ES6其实就是ECMAScript 6的版本,是规范,这种规范被javascript实现了。

tips:
之前学的都是ES5,

为什么要学ES6:
99%公司都是ES6的语法,
ES6可少些JS,但不匹配IE,但webpack打包工具可转换ES6为ES5后匹配所有浏览器。

语法

申明变量
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">

    //es5申明变量
    var a = 3;
    //es6申明变量
    let b = 2;

    //es6申明常量,声明后不能再修改
    const d = 5;

    /**
     * var 函数级别的变量  只有某函数内部生效或整个js作为一个函数生效
     * let 块级别的变量  在代码块内生效  即只在花括号作用范围内生效
     */

    for(let i=1;i<2;i++){
        console.log("===="+i);
    }

    // console.log("ddddd"+i);      //i用var声明这里可以打印,用let不行

    function show() {
        var c=3;
        console.log("-----"+c);
    }

    // console.log("-----"+c);      //不能打印

    console.log(a,b);

</script>

</body>
</html>
解构表达式
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    let arry = ["好","o","大","you"];
    //es5方式使用
    console.log(arry[0],arry[1],arry[2],arry[3]);
    //es6使用数组   解构表达式   相当于用一组变量接收上面的数组元素
    let [a,b,c,d,e,f] = arry;
    console.log(a,b,c,d,f);

    let person={
        name:"王天霸",
        age:1,
        show:function () {
            console.log("show  show  show  show")
        }
    }

    //es5 使用对象
    //console.log(person.name);
    //person.show();

    //es6解构对象   变量明必须和对象中的属性名保持一致   相当于用一组变量接收上面的对象属性
    let {name,age,show} = person;

    console.log(name);
    show();

</script>
</body>
</html>
箭头函数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    let  person={
        //es5定义函数
        show1:function () {
            console.log("AAAAAAAA")
        },
        //es6  箭头函数  作用也是定义函数  一个参数也可以省略括号  箭头也可以省略
        show2:(a)=>{
            console.log("BBBBBB"+a)
        },
        show3(b){
            console.log("CCCCCCCC"+b)
        }
    }

    person.show1();
    person.show2("李寻欢");
    person.show3("时光鸡");

</script>
</body>
</html>
模块化

在这里插入图片描述
b.js

// 导出一个
export const util = {
    show(){
        console.log("AAAA");
    }
}

// 导出多个
const util1 = {
    show1() {
        console.log("AAAA");
    }
}

const util2 = {
    show2() {
        console.log("AAAA");
    }
}

export {util1,util2}

// 导出默认
export default {
    show3(){
        console.log("AAAAA");
    }
}

a.js

import {util} from "./b";	// .js可加可不加
util.show();

import {util1,util2} from "./b";
util1.show1();
util2.show2();

import xxx from "./b.js"    // 名称可随便取
xxx.show3();

页面引用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript" src="js/a.js"></script>
</head>
<body>
<script type="text/javascript">
    /**
     * 模块化:将碎片化的js文件整合成一个
     *  导出方式一: export const util = {}
     *  导出方式二:  export {util1,util2}
     *  导出方式三:  export default {}  导出默认
     *
     *
     *
     *  导入方式一:import {util} from "./b";
     *  导入方式二:import {util1,util2} from "./b";
     *  导入方式三:import xxx from "./b";    名称随便取
     */

</script>
</body>
</html>

npm引出

Ajax成为主流 jQuery,前后端分离开始

Html5
单页面:通过内容的局部刷新做到单页面,所有网站内容都在一个页面上呈现,通过动态的链接刷新里面的内容

NodeJs
小型的前端服务器,就是前端的后台,但是并发量小,只有200左右,讲node的目的是为了了解里面的功能npm

NPM:
是node.js的包管理系统,下载安装完成Node会自带NPM
maven-jar-pom.xml,npm-js-package.json,
NPM相当于java中的maven,管理js插件,安装JS或JS库(VUE)。

nodejs安装

安装文件在文件夹里,可cmd输入node -v看本地是否已有安装node。
会自动配环境变量
安装node是为了用里面的npm,用npm来安装vue(VUE就是一个js库)

VUE

vue简介

渐进式框架,学一个组件就可以用一个,不像java做一个项目要学完全部语法
官网:https://cn.vuejs.org/

轻量:很小,20kb左右
数据绑定:不需要操作Dom节点,直接绑定:input-Data-ajax
指令:v-xxx
插件化:但可以集成各种各样的插件

配置Terminal

安装node是为了用里面的npm,用npm来安装vue(vue就是一个js库)
安装完Node应该自带了npm,可以在控制台输入npm -v查看

如果npm -v为空:
1.设置 - 工具 - Terminal - 配置Shell path为C:\Windows\System32\cmd.exe
2.上移环境变量D:\Java\nodejs\到最上面优先扫描,控制台输入npm -v检查
3.还不行就重启idea再在控制台输入npm -v检查
4.再不行就重启电脑再在控制台输入npm -v检查

vue入门

1.安装VUE
安装方式一:项目cmd,npm install vue
安装方式二:推荐使用,在idea的Terminal/终端控制台安装,npm install vue或简写npm i vue,
下载vue放置到 node_modules =>相当于本地maven仓库

2.使用Vue

案例

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入vue核心js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <div id="app">
      {{msg}}
    </div>
<script type="text/javascript">
    /**
     * 1.安装VUE
     *    npm install/i vue  帮我们下载vue放置到 node_modules =>相当于本地maven仓库
     * 2.使用Vue
     */
    new Vue({
        el:"#app",      //选择器挂载dom节点
        data:{
            msg:"你好,vue!!!"
        }
    });

</script>
</body>
</html>
vue属性-el
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入vue核心js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <!--准备一个dom节点  div-->
    <div class="app">
      {{msg}}
    </div>
    <div class="app">
        {{msg}}
    </div>
<script type="text/javascript">
    /*el:  用来挂载dom节点
       *  el:选择器
       *    id选择器    #app
       *    类型选择器   只有第一个生效
       *    元素选择器   只有第一个生效
       *  我们的Vue实例,一个Vue实例只能挂载一个dom节点
       * */
    new Vue({
        el:"div",
        data:{
            msg:"你好,vue!!!"
        }
    });
</script>
</body>
</html>
vue属性-data
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入vue核心js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
    <!--准备一个dom节点  div-->
    <div class="app">
      {{msg}}<br/>
      {{person.name}}<br/>
      {{person.age}}<br/>
      {{person.show()}}<br/>
    </div>
<script type="text/javascript">
    /*data: {}  用来申明数据 */
    let vuetest = new Vue({
        el:"div",
        data:{
            msg:"你好,vue!!!",
            person:{
                name:"李寻欢",
                age:23,
                show:function () {
                    alert("show  show  show")
                }
            }
        }
    });
    console.log(vuetest.person.name);
    vuetest.person.show();
</script>
</body>
</html>
vue属性-methods
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--引入vue核心js-->
    <script type="text/javascript" src="node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
<!--准备一个dom节点  div-->
    <div class="app">
      {{msg}}<br/>
      {{show1()}}<br/>
    </div>
<script type="text/javascript">
    /* data: {}  用来申明数据 */
    let vuetest = new Vue({
        el:"div",
        data:{
            msg:"你好,vue!!!"
        },
        /*定义函数*/
        methods:{
            show1(){
                alert("AAAAA")
            },
            show2(){
                alert("BBBB")
            }
        }
    });
    vuetest.show2();
</script>
</body>
</html>

vue架构认识

回顾mvc架构
在这里插入图片描述
现在流行的MVVM架构
在这里插入图片描述
M:即Model,模型,包括数据和一些基本操作
V:即View,视图,页面渲染结果
VM:即View-Model,模型与视图间的双向操作(无需开发人员干涉) 监听

在MVVM之前,开发人员从后端获取需要的数据模型,然后要通过DOM操作Model渲染到View中。而后当用户操作视图,我们还需要通过DOM获取View中的数据,然后同步到Model中。而MVVM中的VM要做的事情就是把DOM操作完全封装起来,开发人员不用再关心Model和View之间是如何互相影响的:

-只要我们Model发生了改变,View上自然就会表现出来。
-当用户修改了View,Model中的数据也会跟着改变。

把开发人员从繁琐的DOM操作中解放出来,把关注点放在如何操作Model上.
在这里插入图片描述
Vue是基于mvvm模式的一个前端框架

vue表达式

表达式是Vue中视图模板(html)的一种语法结构,将数据绑定(输出)到HTML中。简单的说就是把data数据模型中数据输出到html中。

1、表达式语法
VueJS表达式写在双大括号内:{{ expression }}。
VueJS表达式把数据绑定到 HTML。
VueJS将在表达式书写的位置"输出"数据。
VueJS表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。
实例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }}。

vue-表达式-基础

加减乘除模,三目,字符串,其他案例见word

<body>
<!--准备一个dom节点  div-->
    <div class="app">
        {{num1}} + {{num2}} = {{num1 + num2}}<br/>
        {{num1}} - {{num2}} = {{num1 - num2}}<br/>
        {{num1}} * {{num2}} = {{num1 * num2}}<br/>
        {{num1}} / {{num2}} = {{num1 / num2}}<br/>
        {{num1}} % {{num2}} = {{num1 % num2}}<br/>
        <!--在js中  表示false
          0  false  ""  NaN  undefine  null
        -->
        {{sex?"男":"女"}}
    </div>
<script type="text/javascript">
    /*data: {}  用来申明数据 */
    let vuetest = new Vue({
        el:"div",
        data:{
            num1:2,
            num2:3,
            sex:0
        }
    });
</script>
</body>
vue-表达式-操作对象&数组
<body>
    <!--准备一个dom节点  div-->
    <div class="app">
        {{JSON.stringify(user)}}<br/>
        {{hobbys.join("==")}}<br/>
    </div>
<script type="text/javascript">
    /*data: {}  用来申明数据 */
    let vuetest = new Vue({
        el:"div",
        data:{
            user:  {
                name: "张三",
                age: 29,
                getAge: function () {
                    return this.age
                },
                toString:function(){
                    return "姓名:"+this.name+",年龄:"+this.age;
                }
            },
            hobbys:["打游戏","踢足球",'泡MM',"泡GG"]
        }
    });
</script>
</body>

vue-指令

  指令:
    以v-开头的  标签的属性
     我们的指令在哪一个标签上,代表着对哪一个标签进行操作
     1.v-text  直接显示文本内容
     2.v-html  显示html内容
     3.v-if    判断
     4.v-for   循环
     5.v-on    绑定事件
     6.v-show  控制标签是否显示
     7.v-bind  绑定属性
     8.v-model 双向绑定
v-text & v-html
<body>
<div id="app">
    <div v-text="msg">我会显示吗?</div>      <!--1.v-text 以文本形式显示内容-->
    <div v-html="msg">我会显示吗?</div>      <!--2.v-html 以html形式显示内容-->
</div>
<script type="text/javascript">
    new Vue({
        el:"#app",
        data:{
            msg:"<h1>我会很粗吗???</h1>"
        }
    });
</script>
</body>
v-if
<body>
<div id="app">
    <span v-if="age>0 && age<=18">还年轻,多玩玩</span>
    <span v-else-if="age>18 && age<=60">该奋斗了,骚年</span>
    <span v-else-if="age>60 && age<=80">退休了,养老了</span>
    <span v-else>可以挂墙上了</span>
</div>
<!-- v-if:判断 -->
<script type="text/javascript">
    new Vue({
        el:"#app",
        data:{
            age:5
        }
    });
</script>
</body>
v-for
<body>
<div id="app">
    <ul>
        <li v-for="v in num">{{"v: "+v}}</li>           <!-- 1.遍历数字  值 -->
    </ul>
    <ul>
        <li v-for="(v,i) in num">{{v}}=={{i}}</li>      <!-- 1.遍历数字  值,index -->
    </ul>
    <ul>
        <li v-for="(v,i) in msg">{{v}}=={{i}}</li>      <!-- 2.遍历字符串   值,index -->
    </ul>
    <br/>
    <div v-for="(v,i) in hobbys">{{v}}=={{i}}</div><br/>        <!-- 3.遍历数组   值,index -->

    <div v-for="(v,k,i) in person">{{k}}=={{v}}=={{i}}</div>        <!-- 4.遍历对象  有三个参数  值,key,index -->
</div>
<script type="text/javascript">
    new Vue({
        el:"#app",
        data:{
            num:5,
            msg:"itsource",
            hobbys:["洗脚","泡MM"],
            person:{
                name:"小乔",
                age:23,
                show:function () {
                    alert("show show show")
                }
            }
        }
    });
</script>
</body>
v-on & v-show
  • v-show :控制当前标签显示
  • v-on 绑定事件,所有的jquery的事件名我们都可以使用
  • v-on:事件名,可以简写成@事件名 ---->推荐使用
<body>
<!--准备一个dom节点  div-->
    <div id="app">
        <img src="img/美女.jpg" height="300" width="300" v-show="isShow"/>
        <!--完整写法-->
        <!--<button v-on:click="show">点我有惊喜</button>-->
        <!--简写-->
        <button @click="show">点我有惊喜</button>
        <button @mouseover="over" @mouseout="out">点我有惊喜</button>
    </div>
<script type="text/javascript">
    new Vue({
        el:"#app",
        data:{
            isShow:false
        },
        methods:{
            show(){
                this.isShow = !this.isShow;
            },
            over(){
                console.log("进去了。。。")
            },
            out(){
                console.log("出来了。。。")
            }
        }
    })
</script>
</body>
v-model

双向绑定就是MVVM,VM控制器既可以监听节点变化也可以监听model变化,
model在vue里就是data属性,view就是页面元素。

<body>
<div id="app">
    <input type="text" v-model="msg">{{msg}}
</div>
<script type="text/javascript">

    new Vue({
        el:"#app",
        data:{
            msg:""
        }
    });
</script>
</body>

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

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

相关文章

软件工程师,入门下深度学习吧

概述 ChatGPT,英文全称为Chat Generative Pre-trained Transformer,是OpenAI研发的聊天机器人程序。ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流。除此之外,还能进行…

kettle架构图

2、架构说明 1&#xff09;最底层的是kettle的核心引擎层&#xff0c;相关的jar在lib目录下。 2&#xff09;中间是开发层&#xff0c;在开发阶段我们接触最多的就是通过spoon进行开发&#xff0c;通过Spoon.bat或者spoon.sh即可启动客户端&#xff0c;开发文件调试之前要先保…

使用vtk创建立方体,设置顶点为不同颜色

引言 改示例为官网上的例子。创建了一个顶点是不同颜色的立方体。 示例 开发环境 使用QtCreator4.11.2,Qt5.14.2。使用的vtk9.2的库及其头文件。创建空项目。 示例代码 其pro文件中的内容&#xff1a; QT core guigreaterThan(QT_MAJOR_VERSION, 4): QT widgets…

【半监督图像分类 ICLR 2023】FreeMatch

【半监督图像分类 ICLR 2023】FreeMatch 论文题目&#xff1a;FREEMATCH: SELF-ADAPTIVE THRESHOLDING FOR SEMI-SUPERVISED LEARNING 中文题目&#xff1a;Freematch&#xff1a;用于半监督学习的自适应阈值 论文链接&#xff1a;https://arxiv.org/abs/2205.07246 论文代码&a…

数字经济下的架构新图景—2023架构·可持续未来峰会(北京主会场)成功举办!

2023 年 6 月 29日&#xff0c;由The Open Group主办的2023架构可持续未来峰会&#xff08;北京主会场&#xff09;在机械工业出版社圆满落幕。 本次大会以“可持续未来”为主题&#xff0c;采取13&#xff0c;即北京主会场上海/成都/深圳三个城市峰会场模式&#xff0c;聚焦架…

android h5 宿舍报修管理系统myeclipse开发mysql数据库编程服务端java计算机程序设计

一、源码特点 android h5 宿舍报修管理系统是一套完善的WEBandroid设计系统&#xff0c;对理解JSP java&#xff0c;安卓app编程开发语言有帮助&#xff08;系统采用web服务端APP端 综合模式进行设计开发&#xff09;&#xff0c;系统具有完整的 源代码和数据库&#xff0c;系…

idea 修改Tool Windows后新建项目又恢复默认设置

我们可能会根据自己的喜好修改idea的工具窗口,但是每次新建项目它又会重置了,解决办法如下:

vscode C++开发记录

vscode C开发记录 插件管理Linux 平台针对编译好的程序进行 Dedug 插件管理 Linux 平台 针对编译好的程序进行 Dedug 右击源文件后&#xff0c;添加debug 配置 Add Debug Configuration 这是一个示例的调试配置文件&#xff0c;用于在VS Code中使用GDB调试已经编译好的程序 …

Sublime Text 初步使用

Sublime Text &#xff0c;最初被设计为一个具有丰富扩展功能的Vim。 Sublime Text具有漂亮的用户界面和强大的功能&#xff0c;例如代码缩略图&#xff0c;Python的插件&#xff0c;代码段等。还可自定义键绑定&#xff0c;菜单和工具栏。Sublime Text 的主要功能包括&#xf…

Vue常见面试题整理

一、对于MVVM的理解&#xff1f; MVVM是Model-View-ViewModel的缩写。 Model&#xff1a;代表数据模型&#xff0c;也可以在Model中定义数据修改和操作的业务逻辑。View&#xff1a;代表UI组件&#xff0c;它负责将数据模型转化成UI展现出来。ViewModel&#xff1a;监听模型数…

Equivariant Graph Neural Networks

论文链接&#xff1a;https://arxiv.org/abs/2102.09844 一种新模型来学习与旋转、平移、反射和排列等变的图神经网络&#xff0c;称为 E(n)-等变图神经网络 (EGNN) 尽管深度学习在很大程度上取代了手工制作的特征&#xff0c;但许多进步严重依赖于深度神经网络中的归纳偏差。…

linux watch命令

在Linux中&#xff0c;有时需要每隔一段时间比如一秒或者两秒刷新一次&#xff0c;这时就可以使用watch 命令。如图&#xff1a; 每隔两秒刷新查看一下磁盘使用情况。

Chrome DevTools常用功能指南

目录 Elements Styles DOM结构 增删属性 模拟元素的伪状态&#xff0c;方便调试 Computed Layout Event Listeners Network Application 资源列表&#xff08;可改&#xff09;本地存储Cookie、WebStorage&#xff08;localStorage、sessionStorage&#xff09; Sourc…

【Linux进程】进程状态 {进程状态的介绍,进程状态的转换,Linux中的进程状态,浅度睡眠VS深度睡眠,僵尸进程VS孤儿进程,调度器的作用}

进程状态 一、基本进程状态 1.1 进程状态介绍 创建状态&#xff1a;当一个进程被创建时&#xff0c;它处于创建状态。在这个阶段&#xff0c;操作系统为进程分配必要的资源&#xff08;将代码和数据拷贝到内存&#xff0c;创建PCB结构体等&#xff09;&#xff0c;并为其分配一…

SpringBoot开发Restful风格的接口实现CRUD功能

基于SpringBoot开发一个Restful接口 前言一、什么是SpringBoot&#xff1f;二、实战---基于SpringBoot开发一个Restful接口1.开发前的准备工作1.1 添加相关依赖 &#xff08;pom文件&#xff09; 1.2 创建相关数据库和表1.3 数据库配置文件 2.实战开发---代码逻辑2.1 实体类2.2…

数据结构 | 顺序队列

一、数据结构定义 typedef int QueueType; typedef struct seqQueue {int MAXNUM; // 队列中能存放的最大元素个数int front, rear; // 队列的队首&#xff0c;队尾QueueType element[100]; // 存放连续空间的起始地址 } *SeqQueue; 二、方法概览 SeqQueu…

软件测试不行了?2023软件测试行情分析

1 绪论 本文先对互联网对时代和社会变革进行了论述&#xff0c;然后再由互联网时代对软件工业模式变革进行了介绍&#xff0c;最后引出附属于软件工业的测试行业在新形势下的需求变化&#xff0c;并对趋势进行了分析&#xff0c;并最终给出了相关的从业人员的职业发展建议。…

《PyTorch深度学习实践》第五讲 用PyTorch实现线性回归

b站刘二大人《PyTorch深度学习实践》课程第五讲用PyTorch实现线性回归笔记与代码&#xff1a;https://www.bilibili.com/video/BV1Y7411d7Ys?p5&vd_sourceb17f113d28933824d753a0915d5e3a90 PyTorch官网教程&#xff1a;https://pytorch.org/tutorials/beginner/pytorch_w…

vue3 elementplus table根据某id相同合并单元格

根据表格中id相同的合并单元格 1.标签上加入合并方法 <el-table:data"tableData.data"selection-change"handleSelectionChange":span-method"arraySpanMethod">/*** 合并行*/ interface SpanMethodProps {row: ListPageType;column: Tabl…

Edge浏览器提示您开启了窗口拦截程序解决方法

最近在使用edge浏览器兼容性的时候&#xff0c;发现登录窗口弹出后&#xff0c;经常被拦截&#xff0c;后面经过在网上上和自己实际测试&#xff0c;终于解决了这个问题。 操作步骤如下&#xff1a; 第一步&#xff0c;找到右上角三个点的图标&#xff0c;点击一哈 第二步&am…