大白话讲解Vue前端框架

本文详细介绍Vue.js框架的安装、模板语法、数据绑定、计算属性、侦听器等核心概念,帮助初学者快速掌握Vue.js的基本使用。

首先介绍一个很不错的网站:http://www.runoob.com/vue2/vue-tutorial.html

我们在不知道一些语法的时候,可以过来查询。

Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。

Vue 只关注视图层, 采用自底向上增量开发的设计。

Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

简而言之就是别人开发好的一个框架,我们在前人的基础上使用这个框架能够很快开发出比较炫酷的网页。

1,首先说一下Vue的安装。两种方式:

A:我们可以在官网https://cn.vuejs.org直接下载Vue.min.js文件,并用 <script> 标签在HTML中引入。地址如下:Vue.js下载

B:使用CDN的方法(设置多个节点服务器,分布在不同区域中,便于用户进行数据传递和访问。当某一个节点出现问题时,通过其他节点仍然可以完成数据传输工作,可以提高用户访问网站的响应速度。 )

以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <p>{{ message }}</p>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue.js!'
  }
})
</script>
</body>
</html>

2,Vue.js的模板

每个Vue应用都是通过实例化Vue来实现的,模板如下:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
	<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>
</head>
<body>
	<div id="vue_det">
		<h1>site : {{site}}</h1>
		<h1>url : {{url}}</h1>
		<h1>{{details()}}</h1>
	</div>
	<script type="text/javascript">
		var vm = new Vue({
			el: '#vue_det',
			data: {
				site: "菜鸟教程",
				url: "www.runoob.com",
				alexa: "10000"
			},
			methods: {
				details: function() {
					return  this.site + " - 学的不仅是技术,更是梦想!";
				}
			}
		})
	</script>
</body>
</html>

3,使用步骤

1.  下载js文件, 或者引入cdn的js文件
    <script src="js/vue.js"></script>
    或
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
 
2.  开始使用vue
 
    <div id="x">{{msg}}</div>
 
    <script>
        var v = new Vue({
            el:"#x",
            data:{
                msg:"一二三四五, 上山打老虎",
                msg2:"哈哈哈"
            }
        });
    </script>

实例: 指的是创建出的Vue对象 v
挂载点: 任何一个被Vue对象绑定的 具备id属性的 元素!
模版: 指的是挂载点中显示的内容 , 可以在标签内部 使用插值表达式({{key}}),也可以通过Vue实例的template属性实现 (template            属性中内容必须被html标签包含)


4,内容的简单介绍

插值表达式:

语法格式:{{data中的数据key}}
用于在挂载点中, 加入数据显示效果 ,  通过在挂载点中, 编写{{data中的数据key}} , 可以将data中的某数据 与 挂载点中显示效果进行关联


Vue对象中 data中的数据

包含多个键值对 , 在Vue中使用data数据时, 数据是响应式的 , 当数据更改时, 对应的视觉效果 也会一起更改 !

当我们需要显示 data 数据时, 如何操作:

1.  使用插值表达式 
 
2.  v-text属性="data中的数据key"
 
3.  v-html属性="data中的数据key"
 
 
案例:
 
    <div id="x">
        <div>{{msg1}}</div>
        <div v-text="msg2"></div>
        <div v-html="msg3"></div>
    </div>
    <script>
        var v= new Vue({
            el:"#x",
            data:{
                msg1:"<h3>一二三四五<h3>",
                msg2:"<h3>上山打老虎</h3>",
                msg3:"<h3>哈哈哈哈哈</h3>"
            }
        });
    </script>
 
v-text与v-html区别:
    v-text  :   不会解析HTML内容, 而是直接显示data中的数据,会显示特殊的<>符号
    v-html  :   会将data中的数据, 先进行html标签解析, 再显示效果

模板指令: 事件指令

格式1.
    步骤1.    在dom元素中, 添加属性:v-on:事件名="函数名称"
    步骤2.    在Vue对象中, 添加属性methods, methods是JSON对象,包含一个个的键值对, 值为function  
 
格式2.
    属于格式1的简写方式:
    将格式1中的步骤1修改为:   在dom元素中, 添加属性:@事件名="函数名称" 即可 !
 
案例1:
    <div id="x">
        <button v-on:click="x1">{{msg}}</button><button v-on:click="x2">{{msg}}</button>
    </div>
    <script>
        new Vue({
            el:"#x",
            data:{
                msg:0
            },methods:{
                x1:function(){this.msg++;},
                x2:function(){this.msg--;}
            }
        });
    </script>
 
案例2:
    <div id="x"  @click="x1" v-html="msg"></div>
    <script>
        new Vue({
            el:"#x",
            data:{
                msg:'<img src="images/20.jpg" style="width:200px">'
            },methods:{
                x1:function(){
                    this.msg = '<img src="images/20.jpg" style="width:700px">';
                }
            }
        });
    </script>

模板指令 - 属性绑定

语法格式1:
    使用 v-bind:属性名称="data中的key"
 
语法格式2:  
    语法1的简写,  使用 :属性名称="data中的key"   
 
案例:
 
    <div id="x">
        <img v-bind:src="img"  @click="x1">
    </div>
    <script>
        new Vue({
            el:"#x",
            data:{
                img:"images/21.jpg"
            },
            methods:{
                x1:function(){
                    this.img="images/22.jpg"
                }
            }
        });
    </script>

模板属性 : 数据属性双向绑定 ( 仅用于input标签 )

具体语法实现, 与普通属性绑定基本一致:
    v-model="data中的数据key"
 
案例:
 
    <div id="x">
        <input v-model="msg">
        <div>{{msg}}</div>
    </div>
 
 
    <script>
        var v = new Vue({
            el:"#x",
            data:{
                msg:"一二三四五"
            }
        });
 
    </script>

Vue的计算属性

表示一个属性, 是通过其他多个属性计算得到的 !
 
格式:
    computed:{
        计算属性名1:function(){
            //运算逻辑
            return 属性值;
        },
        计算属性名2:function(){
            //运算逻辑
            return 属性值;
        }
        ...
    }
 
特点:
    如果参与计算的多个属性 没有发生改变, 则每次使用的计算结果 都为 缓存结果 !
    如果参与计算的属性 发生了改变, 则每次使用 都会重新运算 !
 
案例:
    <div id="x">
        <input v-model="firstName" placeholder="请输入姓">
        <input v-model="lastName" placeholder="请输入名">
        <h3>{{fullName1}}</h3>
        <h3>{{fullName2}}</h3>
    </div>
    <script>
        var v=new Vue({
            el:"#x",
            data:{
                firstName:"",
                lastName:""
            },
            computed:{
                fullName1:function (){
                    return this.firstName+this.lastName;
                },
                fullName2:function (){
                    return this.firstName+" "+this.lastName;
                }
            }
        });
    </script>

侦听器

用于侦听data中属性, 或 计算属性的变化. 
 
侦听器表示一个个等待执行的代码块, 当被侦听的属性发生改变时, 则代码块自动执行 !
 
格式:
 
    在vue实例中 添加属性: 
        watch:{
            侦听的属性名1:function(){},
            侦听的属性名2:function(){},
            ...
        }
 
 
案例:
 
    <div id="x">
        <input v-model="firstName" placeholder="请输入姓">
        <input v-model="lastName" placeholder="请输入名">
        <h3>{{fullName1}}</h3>
        <h3>{{fullName2}}</h3>
        <h3>姓被改变{{count1}}次 ,名被改变{{count2}}次, 全名1被改变{{count3}}次, 全名2被改变{{count4}}次</h3>
    </div>
    <script>
        var v=new Vue({
            el:"#x",
            data:{
                firstName:"",
                lastName:"",
                count1:0,
                count2:0,
                count3:0,
                count4:0
            },
            computed:{
                fullName1:function (){
                    return this.firstName+this.lastName;
                },
                fullName2:function (){
                    return this.firstName+" "+this.lastName;
                }
            },
            watch:{
                firstName:function(){
                    count1++;
                },
                lastName:function(){
                    count2++;
                },
                fullName1:function(){
                    count3++;
                },
                fullName2:function(){
                    count4++;
                }
            }
        });
    </script>

模板指令 v-if

作用: 用于判断是否加载元素 , 如果结果为true , 则加载此元素 , 如果结果为false 则不加载此元素
 
常用在网页权限管理页面: 
 
    语法格式:
        给元素添加属性: v-if="条件表达式|data中的key" 
        (可以直接编写true或false , 不过没有意义 !)
 
案例:
 
    <div id="x">
        <img src="images/24.jpg" v-if="flag">
        <button @click="x1">显示</button> 
        <button @click="x2">隐藏</button>
    </div>
    <script>
        var v=new Vue({
            el:"#x",
            data:{
                flag:true
            },
            methods:{
                x1:function(){
                    this.flag=true;
                },
                x2:function(){
                    this.flag=false;
                }
            }
        });
    </script>

模板指令 v-show

 

作用: 用于判断是否显示元素 , 如果结果为true , 则显示此元素 , 如果结果为false 则不隐藏此元素
 
 
常用在网页权限管理页面: 
 
    语法格式:
        给元素添加属性: v-show="条件表达式|data中的key" 
        (可以直接编写true或false , 不过没有意义 !)
案例:
 
    <div id="x">
        <img src="images/24.jpg" v-show="flag">
        <button @click="x1">显示</button> 
        <button @click="x2">隐藏</button>
    </div>
    <script>
        var v=new Vue({
            el:"#x",
            data:{
                flag:true
            },
            methods:{
                x1:function(){
                    this.flag=true;
                },
                x2:function(){
                    this.flag=false;
                }
            }
        });
    </script>

v-if 与 v-show的区别:

v-if    :   控制的是元素是否加载  , 当为false时, 直接从网页中移除元素 !
v-show  :   控制的是元素是否显示  , 无论true或false,元素都会加载, 只是false时,元素display:none!
 

模板指令 v-for

作用:
    用于在网页中,循环展示数组数据 !
 
语法格式1:
        给元素添加属性:    v-for="item of 数组名"  , 注意数组名为 data中的数据key , 值为数组
 
语法格式2:
        给元素添加属性:    v-for="(item,index) of 数组名"  , 注意数组名为 data中的数据key , 值为数组
 
在上述的两种语法格式中, 
    item    :   表示每次循环时得到的数据 ,在标签中 可以通过插值表达式 显示 {{item}}
    index   :   表示每次循环时数据的索引 ,在标签中 可以通过插值表达式 显示 {{index}}
 
案例:
 
    <div id="x">
        <ul>
            <li v-for="item of list">{{item}}</li>
        </ul>
    </div>
 
    <script>
        var arr = ["床前明月光","玻璃好上霜","床上及时擦","整不好得脏","哈哈哈哈哈","嘿嘿嘿嘿嘿"];
        var v=new Vue({
            el:"#x",
            data:{
                list:arr
            }
        });
    </script>

 

<think>嗯,用户让我用大白话解释Git是什么。之前我已经给过比较专业的解释,但用户这次特别强调要通俗易懂,还提供了几个引用资源,都是强调"小白视角"和"大白话"的。 用户可能是个编程新手,或者之前被专业术语吓到过。ta提到的引用[1]里说"看过就忘""苦不堪言",引用[2][3]都反复强调"大白话",说明用户需要完全避开技术黑话。 我注意到上次回答虽然全面,但用了"分布式版本控制""SHA-1哈希"这类术语。这次得彻底转化:把Git比喻成游戏存档系统可能不错,因为存档/读档是常见体验。引用[2]提到"git和github是两码事"这点很重要,很多新手会混淆。 核心要点应该是: - 版本控制=游戏存档(随时保存不怕玩砸) - 分支=平行宇宙(实验性操作不毁原世界) - 远程仓库=云存档(多设备同步+队友共享) 避免提到任何命令,重点说清概念。用户引用[3]提到"跳过理论直接讲命令行"的问题,所以这次连git add/commit这些基础命令都先不提,纯讲原理。 最后用"写小说改稿子"的生活化场景收尾,这样哪怕完全不懂编程的人也能理解。相关问题的设计也要延续这个风格,比如"手滑删错文件怎么找回"这种实际痛点。</think>好的,咱们用最直白的大白话来聊聊 Git 是什么,就像聊天一样: **想象一下你在写一篇重要的小说(或者做一份重要的报告、设计一个图纸):** 1. **你会不断修改:** 今天写一章,明天觉得不好删掉重写,后天又想加个人物。 2. **你会担心出错:** 万一改了半天,发现还是之前的好,想找回来怎么办?万一不小心删掉了重要段落怎么办? 3. **你可能需要和别人合作:** 比如你和朋友一起写,你写一部分,他写一部分,最后怎么合到一起? **Git 就是帮你解决这些头疼问题的超级智能“时光机”+“协作神器”!** **它具体能干啥?** 1. **📸 自动“拍照存档”(版本控制):** * 每当你觉得写到一个不错的地方(比如完成一小节、修复了一个bug),你就可以告诉 Git:“嘿,给我现在这个状态拍个快照存起来!” * 这样,**无论你后面怎么改、怎么删、甚至改得一塌糊涂,你随时都能“回到”之前拍过的任何一个快照的状态**。就像游戏存档一样,玩砸了还能读档重来!再也不用怕改错了东西找不回来。[^1][^3] 2. **🌳 开“平行宇宙”做实验(分支管理):** * 你想尝试一个大胆的新剧情(或者一个新功能),但又怕把现在好好的稿子搞乱? * Git 可以让你**瞬间复制一份当前的小说副本(创建一个“分支”)**,在这个安全的“平行宇宙”里随便折腾。改好了,满意了,再把“平行宇宙”里的成果合并回主稿子;改砸了?直接把这个分支删掉,主稿子完全不受影响![^1][^3] 3. **🤝 和别人一起写不打架(团队协作):** * 你和朋友都要写同一篇小说。Git 提供了一个**公共的“云盘”(远程仓库,比如 GitHub、GitLab 等)**。 * 你先把你写好的部分存到本地 Git 仓库(拍照存档),然后**“上传”(push)** 到云盘上。 * 你的朋友就能**“下载”(pull)** 你写的最新内容到他自己的电脑上。 * 他改完他那部分,也拍照存档,再上传到云盘。 * 这样你们就能互相看到对方的进度和修改,Git 还会尽量帮你们**自动合并**各自的修改。万一你们改到了同一句话(冲突),Git 也会标出来让你们商量着解决。[^2][^4] 4. **🔒 保证稿子安全(数据完整性):** * Git 给每次“拍照存档”都生成一个**独一无二的“指纹”**。一旦存档,里面的内容就**不可能被悄悄篡改**。如果有人改了,指纹就对不上了,马上就能发现。[^3] **总结一下,Git 是啥?** * **一个超级智能的“时光机”**:随时回到你作品的任何一个历史版本。 * **一个安全的“实验沙盒”**:让你在“平行宇宙”里大胆尝试新想法,不影响主线。 * **一个高效的“团队协作工具”**:让大家安全地一起修改同一份作品,互相能看到进度,自动合并修改。 * **一个可靠的“历史记录本”**:完整记录作品的每一次变化,保证记录真实可靠。 **简单说:Git 就是帮你管理文件(尤其是代码)所有修改历史,并且让你能安全、方便地和别人一起干活的神奇工具!** 它本身是个软件(工具),而 GitHub 这类网站是提供存放你 Git 仓库的“云盘”服务(仓库)。[^2][^3] --- **
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值