响应式数据(v-on、v-if、v-show、v-for、v-bind、v-model、computed、watch)

目录

一、事件绑定指令v-on

二、条件渲染指令v-if 

三、v-show 

四、遍历指令v-for

1、遍历对象的值

2、遍历对象的值和键(先值后键)

3、遍历对象的值、键和索引

4、遍历数组的值和索引

五、属性动态化指令v-bind(单向)

【CSS样式的绑定,有以下两种常用方式】

六、双向数据绑定指令v-model 

七、计算属性computed

八、侦听器watch


一、事件绑定指令v-on

        使用v-on指令(简写为@)来监听DOM事件,并在事件触发时执行对应的JavaScript。

格式用法:

        v-on:click="handler"        或        @click="handler"

实例演示: 

<div id="app">
        <h3>{{ msg }}</h3>
        <h3>{{ start.title }}</h3>
        <button v-on:click="end">修改</button>
    </div>

    <script type="module">
        import { createApp, reactive, ref } from './vue.esm-browser.js'
        
        createApp({
            setup() {

                let msg = "成功启动!!!";

                const start=reactive({
                    title:"你好吗",
                })
    
                const end=()=>{
                    msg="出发!"    // msg不是响应式数据,无法更改数据,所以没有改变,但是从控制台可以看出改变了
                    start.title="我很好"
                    console.log(msg);
                    
                }
                return {
                    msg, //普通变量, 非响应式数据, 在模板中普通变量不会自动更新
                    start,
                    end
                }
            }
        }).mount("#app")
    
    </script>


二、条件渲染指令v-if 

        v-if、v-else-if、v-else是条件渲染指令。v-if指令用于绑定一个表达式,当表达式为真时,对应的元素会被渲染到DOM中,如果为假,元素则不会被渲染。

注:一个 v-else 元素必须跟在一个 v-if 或者 v-else-if 元素后面,否则它将不会被识别。

 实例演示:

 <div id="app">
        <h3>{{ web.user }}</h3>
        <p v-if="web.user < 100">新网站</p>
        <p v-else-if="web.user >= 100 && web.user < 1000">优秀网站</p>
        <p v-else-if="web.user >= 1000 && web.user < 10000">资深网站</p>
        <p v-else>超级网站</p>
        <button @click="add_user">增加用户</button>
        
    </div>

    <script type="module">
        import { createApp, reactive, ref } from './vue.esm-browser.js'
        
        createApp({
        setup() {
                const web = reactive({   // 响应式数据
                    user: 50
                });


                const add_user = () => {
                    web.user += 1000;
                }

                return {
                    web,
                    add_user
                }
            }
        }).mount("#app");
    
    </script>
        在上述代码中,v-if首先判断user是否小于100,如果是就显示"新网站"。若不满足这个条件,就会执行v-else-if指令进行下一个判断,即判断user大于等于100并且小于1000,依此类推。如果所有v-ifv-else-if条件都不满足,就会执行v-else中的内容。

 

三、v-show 

        v - show 是Vue.js中的一个指令。它用于根据条件来控制元素的显示和隐藏。当绑定的表达式的值为true 时,元素会显示;当表达式的值为false时,元素会隐藏。Vue处理v-show变化时,是用display:none实现隐藏的(可以通过F12检查源代码,当点击时,源码会加入display:none)。

实例演示:

        代码先设置一个响应式数据web,状态show为true,使用v-on绑定toggle,点击按钮后引用toggle函数,切换显示状态。web.show取反,v-show捕获不到web.show。
 <div id="app">


        <h3>显示状态: {{ web.show }}</h3>
        <!-- Vue处理v-show变化时,是用display:none实现隐藏的(可以通过F12检查源代码,当点击时,源码会加入display:none) -->
        <p v-show="web.show">使用v-show</p>   
    
        <button @click="toggle">切换显示状态</button>

        
    </div>

    <script type="module">
        import { createApp, reactive, ref } from './vue.esm-browser.js'
        
        createApp({
        setup() {
                const web = reactive({   // 响应式数据
                    show: true,
                    user: 500
                });

                const toggle = () => {
                    web.show = !web.show;   // 这个布尔变量被切换后,模板中用到的地方会自动更新,进而被v-show捕获
                    
                }


                return {
                    web,
                    toggle,
                }
            }
        }).mount("#app");
    
    </script>

四、遍历指令v-for

        v-for会遍历对象或数组的每一个元素,将当前元素赋值给变量,然后通过插值运算符显示每个元素的属性。

1、遍历对象的值

实例演示:

<div id="app">
        <!-- 遍历对象的值 -->
        <h4>遍历对象的值</h4>
        <ul>
            <li v-for="value in data.user">
                {{ value }}
            </li>
        </ul>
    </div>
    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
                const data = reactive({
                    //对象
                    user: { name: "李雷",   gender: "男" ,class:"2班"}
                });

                return {
                    data
                }
            }
        }).mount("#app")
    </script>


2、遍历对象的值和键(先值后键)

实例演示:

    <div id="app">
<!-- 遍历对象的值和键。 注意:写指令时,先值后键 -->
        <h4>遍历对象的值和键</h4>
        <ul>
            <li v-for="(value, key) in data.user">
                {{ key }} : {{ value }}
            </li>
        </ul>
    </div>
<script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
                const data = reactive({
                    //对象
                    user: { name: "李雷",   gender: "女" }
                });

                return {
                    data
                }
            }
        }).mount("#app")
    </script>


3、遍历对象的值、键和索引

实例演示:

    <div id="app">
         <!-- 遍历对象的值,键和索引。 注意:写指令时,先值再键后索引 -->
        <h4>遍历对象的值,键和索引</h4>
        <ul>
            <li v-for="(value, key, index) in data.user">
                {{ index }} : {{ key }} : {{ value }}
            </li>
        </ul>
    </div>

    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
                const data = reactive({
                    //对象
                    user: { name: "李雷",   gender: "女" }
                });

                return {
                    data
                }
            }
        }).mount("#app")
    </script>


4、遍历数组的值和索引

实例演示:

    <div id="app">
<!-- 遍历数组的值和索引。 注意:写指令时,先值后索引 -->
        <h4>遍历数组的值和索引</h4>
        <ul>
            <li v-for="(value, index) in data.number">
                {{ index }} : {{ value }}
            </li>
<!-- 获取相对应索引的值 -->
            {{data.number[2]}}
        </ul>
    </div>
<script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
                const data = reactive({
                    //数组
                    number: ["十",  "十一",  "十二"], 
                });

                return {
                    data
                }
            }
        }).mount("#app")
    </script>


        <template>标签的内容不会自动显示。 <template> 标签可以用来包装多个元素或者多行代码, 不会在页面中渲染。

 <div>
注: <template> 标签可以用来包装多个元素或者多行代码, 不会在页面中渲染 
 </div>


五、属性动态化指令v-bind(单向)

        v-bind指令(可以简写成“ ”) 用于将组件的属性和数据进行动态绑定。

实例演示: 

<div id="app">

        <h3>  iuput标签动态属性绑定    v-bind:value </h3>
        <input type="text" v-bind:value="web.str">
    
        <h3>  iuput标签动态属性绑定(简写形式)   :str </h3>
        <input type="text" :value="web.str">
    

        <h3>  img标签动态属性绑定(简写形式)    :src </h3>
        <img :src="web.img">


        <br>
        <button @click="change">修改</button>
    </div>




    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
    
        createApp({
            setup() {
                const web = reactive({
                    str: "w",
                    img: "./img_src/logo0.png",
                })

                const change = () => {
                    web.str += "w";
                    web.img=`./img_src/logo1.png`;
                }
    
                return {
                    web,
                    change
                }
            }
        }).mount("#app")
    </script>
        在上述代码中,先设置一个响应式数据,设置好输入框,通过v-bind将其绑定在一起,
    再定义一个函数change,在button引用v-on指令,在点击button时,多输出一个“w”,图
    片发生改变。


【CSS样式的绑定,有以下两种常用方式】

方案1:通过布尔值控制某个类名是否存在,进而控制对应的CSS样式是否被选中生效。v-bind指令虽然可以直接对class属性进行数据绑定,但如果将绑定的值设置为一个对象,其就会产生一种新的语法规则,设置的对象中可以指定对应的class样式是否被选用。 

<style>
        .textColor{
            color: red;
        }
    </style>
</head>

<body>
    <div id="app">
        <!-- 【方案一】 -->

       
        <h5 :class="{textColor:web.fontStatus}">我爱你中国</h5>
        <button @click="change_color">修改颜色</button>
    </div>
<script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
    
        createApp({
            setup() {


                const web = reactive({
                    fontStatus: false
                })
                const change_color = () => {
                    web.fontStatus = !web.fontStatus;
                }
                return {
                    web,
                    change_color
                }
            }
        }).mount("#app")
    </script>
        在上述代码中,通过web.fontStatus取反改变字体的颜色。 


方案2:直接将标签的style属性和响应式对象绑定起来(较常用)。

    <div id="app">
        <h5 :style="b_style">我爱你中国,字号{{b_style.fontSize}}</h5>
        <button @click="add_fontsize">加大字号</button>
    </div>
    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
    
        createApp({
            setup() {

                const b_style = reactive({
                    color: "green",
                    fontSize: "10px"
                })

                let p = 10;
                const add_fontsize = () => {
                    p += 5;
                    b_style.fontSize = `${p}px`;
                }


                return {
                    b_style,
                    add_fontsize
                }
            }
        }).mount("#app")
    </script>

六、双向数据绑定指令v-model 

          v - model  就是双向数据绑定指令,作用于像 <input> 、  <select> 和组件上。在表单中,它能够让数据在视图(用户看到的界面)和模型(JavaScript中的数据对象)之间自动同步。比如有一个简单的输入框,当用户在输入框中输入内容时,数据对象中的对应属性会自动更新;反过来,当这个数据对象的属性被程序修改,输入框显示的内容也会自动改变。

  •  文本输入框的双向数据绑定
    <div id="app">
        <h3>文本框: {{ data.text }} </h3>
        输入您要更改的昵称: <input type="text" v-model="data.text">
        <hr>
    </div>
    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
            // 定义了一个响应式对象
            const data = reactive({
                text: "www.baidu.com", //文本框
           })

            return {data}
        }
    }).mount("#app")
    </script>


  • 单选框的双向数据绑定

    <div id="app">
        <h3>您单选了: {{ data.radio }} </h3>
        <input type="radio" value="唱歌"  name="ra" v-model="data.radio">唱歌
        <input type="radio" value="跳舞"  name="ra" v-model="data.radio">跳舞
    </div>
    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
            // 定义了一个响应式对象
            const data = reactive({
                radio: "",             //单选框
            })

            return {data}
        }
    }).mount("#app")
    </script>


  • 多选框的双向数据绑定

    <div id="app">
        <h3>您多选了: {{ data.checkbox }} </h3>
        <input type="checkbox" value="唱歌"  v-model="data.checkbox">唱歌
        <input type="checkbox" value="跳舞"   v-model="data.checkbox">跳舞
        <input type="checkbox" value="打游戏" v-model="data.checkbox">打游戏 
    </div>
  <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
            // 定义了一个响应式对象
            const data = reactive({
                checkbox: [],          //复选框(数组)
            })

            return {data}
        }
    }).mount("#app")
    </script>


  • 下拉菜单的双向数据绑定

    <div id="app">
        <h3>请问您的专业是: {{ data.select }} </h3>
        <select v-model="data.select">
            <option value="">请选择</option>
            <option value="计算机应用技术">计算机应用技术</option>
            <option value="数字媒体技术">数字媒体技术</option>
            <option value="物联网工程">物联网工程</option>
            <option value="电子工程">电子工程</option>
        </select>
    </div>
    <script type="module">
        import { createApp, reactive } from './vue.esm-browser.js'
        createApp({
        setup() {
            // 定义了一个响应式对象
            const data = reactive({
                select: ""             //下拉框
            })

            return {data}
        }
    }).mount("#app")
    </script>

七、计算属性computed

        计算属性computed主要用于根据已有的响应式数据(例如 data选项中的数据)来计算得出新的值。计算属性会基于它的依赖项进行缓存,只有在依赖项的值发生改变时才会重新计算。

拥有属性特点的函数(方法):

1.为普通方法施加了计算属性后,调用该函数不需要加括弧

2. 为普通方法施加了计算属性后,该函数只要被调用过就会在浏览器中产生缓存, 下次再被        调用时将直接从缓存调用。

 实例演示: 对比两种调用方法,第一种调用方法调用后再次使用需要再调用,而第二种方法在第一次调用时会缓存,第二次调用时只需从缓存中调用。

    <div id="app">

        <h3>调用add方法: {{ add() }}</h3>
        <h3>调用add方法: {{ add() }}</h3>
        <h3>调用add方法: {{ add() }}</h3>

        <h3>第1次调用带有计算属性的sub方法: {{ sub }}</h3>
        <h3>第2次调用带有计算属性的sub方法: {{ sub }}</h3>

    </div>




    <script type="module">
        import { createApp, ref, reactive, computed } from './vue.esm-browser.js'
        createApp({
        setup() {

            // 数据(属性): 响应式对象
            const data = reactive({
                x: 10,
                y: 20
            })

            // 普通函数(方法): 
            const add = () => {
                console.log("调用普通的方法add,不做缓存") 
                return data.x + data.y
            }

            // 拥有属性特点的函数(方法):
            // 1.为普通方法施加了计算属性后,调用该函数不需要加括弧
            // 2. 为普通方法施加了计算属性后,该函数只要被调用过一次,
            //    就会在浏览器中产生缓存, 下次再被调用时将直接从缓存调用。
                
            const sub = computed(
                    () => {
                        console.log("调用计算属性的方法sub, 有缓存") 
                        return data.x - data.y
                     }
            )

            return {
                data,
                add,
                sub
            }
        }
    }).mount("#app")


    </script>

注意红圈 

八、侦听器watch

        watch 是一个用于观察和响应数据变化的特性。它主要用于监听数据(如data 选项中的属性、计算属性等)的变化。当被监听的数据发生变化时,可以执行一些特定的操作,例如发起异步请求、更新其他数据等。

 实例演示1:侦听响应式字符串 hobby 的数据变动

    <div id="app">      
        爱好:
        <select v-model="hobby">
            <option value="请选择">请选择</option>
            <option value="写作">写作</option>
            <option value="画画">画画</option>
            <option value="运动">运动</option>
        </select>
    </div>
    <script type="module">
        import { createApp, ref, watch } from './vue.esm-browser.js'
    
        createApp({
        
            setup() {

                const hobby = ref("请选择")    //爱好
                // 作用:1.监听数据变动  2.拿到变动的值
                watch(hobby, 
                    function(newValue, oldValue){

                    console.log("hobby的旧值:", oldValue, 
                                "--> hobby的新值:", newValue)
    
                    if (newValue == "画画") {
                        console.log("您的爱好选中了:画画")
                    }
                })
                return { hobby,  }
            }
        }).mount("#app")
    </script>


 实例演示2:侦听响应式对象 date 的数据变动

    <div id="app">      
        出生年月:
        <select v-model="date.year">
            <option value="">请选择</option>
            <option value="2023">2023</option>
            <option value="2024">2024</option>
            <option value="2025">2025</option>
        </select> 年
    
       
        <select v-model="date.month">
            <option value="">请选择</option>
            <option value="10">10</option>
            <option value="11">11</option>
            <option value="12">12</option>
        </select> 月
    </div>
    <script type="module">
        import { createApp, reactive, watch } from './vue.esm-browser.js'
    
        createApp({
        
            setup() {

                 const date = reactive({       //日期
                    year: "2023",
                    month: "10"
                })
                watch(date, 
                    function(newValue, oldValue){
                        // oldValue newValue是一样的
                        console.log(        "date的旧值:", oldValue,
                                    " \n--> date的新值:",   newValue)
        
                        if (newValue.year == "2025") {
                            console.log("您选中的年份是:2025年")
                        }
        
                        if (newValue.month == "11") {
                            console.log("您选中的月份是:11月")
                        }
                })
                return { date,  }
            }
        }).mount("#app")
    </script>


 实例演示3:侦听 date 中 year 的数据变动

    <div id="app">      
        出生年月:
        <select v-model="date.year">
            <option value="">请选择</option>
            <option value="2023">2023</option>
            <option value="2024">2024</option>
            <option value="2025">2025</option>
        </select> 年
    </div>
    <script type="module">
        import { createApp, reactive, watch } from './vue.esm-browser.js'
    
        createApp({
        
            setup() {

                 const date = reactive({       //日期
                    year: "2023",
                })
                watch( () => date.year,     
                   (newValue, oldValue) => {
                   console.log("date.year的旧值:", oldValue, " --> date.year的新值:",                             newValue)
        
                        if (date.year == "2024") {
                            console.log("您选中的年份是:2024年")
                        }
                    }
                )
                })
                return { date,  }
            }
        }).mount("#app")
    </script>

        

        注:watch 的第一个参数可以是不同形式的“数据源”:它可以是一个 ref (包括计算属性)、一个响应式对象、一个 getter 函数、或多个数据源组成的数组。注意,你不能直接侦听响应式对象的属性值, 比如数据源date.year 这里需要用一个返回该属性的 getter 函数 :    () => date.year

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式之 命令模式

命令模式&#xff08;Command Pattern&#xff09;是行为型设计模式之一&#xff0c;它将请求&#xff08;或命令&#xff09;封装成一个对象&#xff0c;从而使用户能够将请求发送者与请求接收者解耦。通过命令模式&#xff0c;调用操作的对象与执行操作的对象不直接关联&…

微信小程序2-地图显示和地图标记

一、index修改页面&#xff0c;让页面能够显示地图和一个添加标记的按钮。 index.wxml <scroll-view class"scrollarea" scroll-y type"list"><view class"index_container"><map id"map" style"width: 100%; h…

使用eclipse构建SpringBoot项目

我这里用eclipse2018版本做演示&#xff0c;大家有需要的可以下载Eclipse Downloads | The Eclipse Foundation 1.打开eclipse&#xff0c;选择存放代码的位置 2.选择 file >> new >> project >> 选择springboot文件下的 spring starter project 2.这里选择N…

uniapp接入BMapGL百度地图

下面代码兼容安卓APP和H5 百度地图官网&#xff1a;控制台 | 百度地图开放平台 应用类别选择《浏览器端》 /utils/map.js 需要设置你自己的key export function myBMapGL1() {return new Promise(function(resolve, reject) {if (typeof window.initMyBMapGL1 function) {r…

绕过CDN寻找真实IP

在新型涉网案件中&#xff0c;我们在搜集到目标主站之后常常需要获取对方网站的真实IP去进一步的信息搜集&#xff0c;但是现在网站大多都部署了CDN&#xff0c;将资源部署分发到边缘服务器&#xff0c;实现均衡负载&#xff0c;降低网络堵塞&#xff0c;让用户能够更快地访问自…

【计算机网络】网段划分

一、为什么有网段划分 IP地址 网络号(目标网络) 主机号(目标主机) 网络号: 保证相互连接的两个网段具有不同的标识 主机号: 同一网段内&#xff0c;主机之间具有相同的网络号&#xff0c;但是必须有不同的主机号 互联网中的每一台主机&#xff0c;都要隶属于某一个子网 -&…

HarmonyOS笔记5:ArkUI框架的Navigation导航组件

ArkUI框架的Navigation导航组件 在移动应用中需要在不同的页面进行切换跳转。这种切换和跳转有两种方式&#xff1a;页面路由和Navigation组件实现导航。HarmonyOS推荐使用Navigation实现页面跳转。在本文中在HarmonyOS 5.0.0 Release SDK (API Version 12 Release)版本下&…

基于阿里云服务器部署静态的website

目录 一&#xff1a;创建服务器实例并connect 二&#xff1a;本地文件和服务器share 三&#xff1a;关于IIS服务器的安装预配置 四&#xff1a;设置安全组 五&#xff1a;建站流程 六&#xff1a;关于备案 一&#xff1a;创建服务器实例并connect 创建好的服务器实例在云…

mysql根据日期查询没有的日期也要显示数据

先查询出日期数据(当前日期往前推12个月) select bb.datefrom (select num : num 1,date_format(adddate(date_sub(date_sub(curdate(),interval 12 month),interval 1 month),interval num month), %Y-%m) as datefrom mysql.help_topic,(select num : 0) as twhere addd…

Go语言链接Redis数据库

1.使用go get命令安装go-redis/v8库&#xff1a; 我这里使用的vscode工具安装&#xff1a; go get github.com/go-redis/redis/v82.创建Redis客户端实例 使用以下Go代码连接到Redis服务器并执行命令&#xff1a; package mainimport ("context""fmt"&q…

1-测试go-redis缓存数据

1-测试go-redis缓存数据 1.go-redis缓存数据测试效果 a.测试页面 测试页面&#xff1a;--这里使用 Postman 来做测试 http://127.0.0.1:8000/article/getone/3 http://127.0.0.1:8000/article/getone/4 http://127.0.0.1:8000/article/getone/5b.测试效果 查看终端&#xf…

查看浏览器的请求头

爬虫时用到了请求头&#xff0c;虽然可以用网上公开的&#xff0c;但是还是想了解一下本机浏览器的。以 Edge 为例&#xff0c;其余浏览器通用。 打开浏览器任一网页&#xff0c;按F12打开DevTools&#xff1b;或鼠标右键&#xff0c;选择“检查”。首次打开界面应该显示在网页…

git branch -d 删除分支

Git进行版本控制时&#xff0c;删除分支是常见的操作。特别是当特定的功能开发完成或者分支不再需要时&#xff0c;删除分支可以帮助保持仓库的整洁。删除本地分支和删除远端分支是两个独立的操作。如果需要同时删除本地和远端的分支&#xff0c;需要分别执行以下两个命令。 一…

【漏洞复现】|智互联SRM智联云采系统quickReceiptDetail SQL注入漏洞

漏洞描述 智互联(深圳)科技有限公司SRM智联云采系统针对企业供应链管理难题&#xff0c;及智能化转型升级需求&#xff0c;智联云采依托人工智能、物联网、大数据、云等技术&#xff0c;通过软硬件系统化方案&#xff0c;帮助企业实现供应商关系管理和采购线上化、移动化、智能…

[论文阅读] 异常检测 Deep Learning for Anomaly Detection: A Review(三)总结梳理-疑点记录

《深度异常检测综述》总结梳理 目录 一、研究背景与挑战二、深度异常检测方法分类三、实验评估四、结论在这篇文章中&#xff0c;**异常检测的异构性**主要从以下几个方面来理解&#xff1a;如何理解多源数据融合的困难“学习正常性的特征表示”与“用于特征提取的深度学习”在…

linux下i2c开发与框架源码分析

目录 1 概述 2 I2c子系统框架 3 I2C的使用流程 3.1 在驱动里使用 3.2 在应用层使用 3.3 I2ctool的使用 4 为硬件i2c注册一个适配器 5 i2c子系统源码流程分析 5.1 i2c device与driver绑定过程 5.1.1 Driver的注册与处理 5.1.2 Client device的生成 5.2 I2c的发送与接…

学习路之phpstudy--安装mysql5.7后在my.ini文件中无法修改sql_mode

windows环境下使用phpstudy安装mysql5.7后需要修改mysql中的sql_mode配置&#xff0c;但是在phpstudy中打开mysql配置文件my.ini后&#xff0c; 通过查找找不到sql_mode或sql-mode&#xff0c; 此时无法在my.ini文件中直接进行修改&#xff0c;可以使用mysql命令进行修改&#…

【大数据学习 | Spark-Core】详解分区个数

RDD默认带有分区的&#xff0c;那么创建完毕rdd以后他的分区数量是多少&#xff1f; 从hdfs读取文件的方式是最正规的方式&#xff0c;我们通过计算原理可以推出blk的个数和分区数量是一致的&#xff0c;本地化计算。 我们可以发现数据的读取使用的是textInputFormat&#xff…

前端常用内容

Style 1. 文本左对齐 style"text-align: left;" 2. 文本居中 style"text-align: center;" 3. 文本右对齐 style"text-align: right;"margin 属性可以设置以下四种类型的外边距&#xff1a; 1. 单一值&#xff1a;为所有四个方向&#xff08;上、…

免费微调自己的大模型(llama-factory微调llama3.1-8b)

目录 1. 名词/工具解释2. 微调过程3. 总结 本文主要介绍通过llama-factory框架&#xff0c;使用Lora微调方法&#xff0c;微调meta开源的llama3.1-8b模型&#xff0c;平台使用的是趋动云GPU算力资源。 微调已经经过预训练的大模型目的是&#xff0c;通过调整模型参数和不断优化…