框架的使用

什么是框架?

盖房子,框架结构

框架结构就是房子主体,基本功能

把很多基础功能已经实现(封装了)

框架:在基础语言之上,对各种基础功能进行封装,方便开发者,提高开发效率

举例:操作网页

现在:点击一个按钮,触发事件,获得我们要操作的标签,再对标签内容进行操作

框架:操作网页时,程序员之关注要操作的内容即可,对标签内容的更新等操作都由框架完成

Vue官网:Vue.js (vuejs.org)

前端框架

Vue.Js 是一个js框架,不是代替js的,是对js进行了封装。

Vue官网:Vue.js (vuejs.org)

后端Java框架

mybatis--jdbc

spring...

今天先来入门Vue.js

什么是 Vue.js

Vue (读音 /vju ː /,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue
的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。
Vue.js 是前端的主流框架之一,和 Angular.js、React.js 一起,并成为前端三
大主流框架! https://v2.cn.vuejs.org/

Vue.js 优点

1.体积小 压缩后 33K
2.更高的运行效率
用 JQuery 或者原生的 JavaScript DOM 操作函数对 DOM 进行频繁操作的
时候,浏览器要不停的渲染新的 DOM 树,导致页面看起来非常卡顿。
基于虚拟 dom,一种可以预先通过 JavaScript 进行各种计算,把最终的
DOM 操作计算出来并优化的技术,最后在计算完毕才真正将 DOM 操作提交。
3.双向数据绑定,简化 Dom 操作
通过 MVVM 思想实现数据的双向绑定,让开发者不用再操作 dom 对象,
把更多的精力投入到业务逻辑上.
MVVM 是 Model-View-ViewModel 的简写。MVVM 就是将其中的 View 的
状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。

如图:

view就是网页标签

viewmodel是vue框架

model是js中的数据对象
4 生态丰富、学习成本低
市场上拥有大量成熟、稳定的基于 vue.js 的 ui 框架、常用组件!来即用实现
快速开发!对初学者友好、入门容易、学习资料多.
vue.js是一个js框架,不是代替js的,是对js进行了封装

element.UI框架:将前端常用的一些组件(表单,表格,消息提示)进行封装(对html和css进行了封装)

Vue 安装

方式 1:直接用 <script> 引入
下载 Vue.js 并导入 js 文件
<script src="js/vue.js"></script>

方式 2:命令行工具 (CLI) *不推荐新手使用
安装教程给出了更多安装 Vue 的方式。请注意我们不推荐新手直接使
用 vue-cli,尤其是在你还不熟悉基于 Node.js 的构建工具时。

Vue 指令

指令带有前缀 v- 开头,以表示它们是 Vue 提供的特殊属性。
v-text
作用是设置标签的文本内容
默认写法会替换全部内容,使用差值表达式可以替换指定内容
内部支持写表达式
<p v-text="message"></p>
<p>{{message}}</p>
v-html
作用是设置元素的 innerHTML
内容中有 html 结构会被解析为标签
内部支持写表达式
<p v-html="message"></p>

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="file:///C:/code/web/vuepro/js/v2.6.10/vue.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
	</head>
	<body>
		<!-- 创建一个标签
			{{message}}插入一个值,不影响标签中的其他内容
			v-html="message",v-text="message"会覆盖标签中的其他内容
			
			{{message}},v-text="message" 不能解析标签中的html标签
			{{message}},v-html="message" 可以解析标签中的html标签
		 -->
		<div id="app">
		  {{ message }}
		  <p v-text="message">aaa</p>
		  <p v-html="message">1</p>
		</div>
		<script>
			// 创建了一个vue对象
			var app = new Vue({
			  el: '#app',/* 绑定挂载点 */
			  data: {
			    message: 'Hello Vue!',
				
			  }
			})
		</script>
	</body>
</html>

v-on
作用是为元素绑定事件
事件名不需要写 on 指令可以简写为@
绑定的方法定义在 methods 属性中,可以传入自定义参数
<input type="button" value="按钮" v-on:click="test(1,2)" />
<input type="button" value="按钮" @click="test" />
methods:{
test(a,b){ alert(a);
}
}

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="file:///C:/code/web/vuepro/js/v2.6.10/vue.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
	</head>
	<body>
		<!-- 创建一个标签
			{{message}}插入一个值,不影响标签中的其他内容
			v-html="message",v-text="message"会覆盖标签中的其他内容
			
			{{message}},v-text="message" 不能解析标签中的html标签
			{{message}},v-html="message" 可以解析标签中的html标签
		 -->
		<div id="app">
		  <!-- {{ message }}
		  <p v-text="message">aaa</p>
		  <p v-html="message">1</p> -->
		  <input type="button" value="按钮1" v-on:click="test1()"/>
		  <input type="button" value="按钮2" @click="test2()">
		</div>
		<script>
			// 创建了一个vue对象
			var app = new Vue({
			  el: '#app',/* 绑定挂载点 */
			  data: {
			    message: '<b>Hello Vue!</b>',
			  },
			  methods:{
				  test1(){
					  alert(this.message = "aaaaaa");
				  },
				  test2(){
					  alert(this.message);
				  }
			  }
			})
		</script>
	</body>
</html>

v-model
作用是便捷的设置和获取表单元素的值
绑定的数据会和表单元素值相关联
绑定的数据<---->表单元素的值 双向数据绑定
<input type="text" v-model="message"/>
<p>{{message}}</p>
data:{
message:""
}

html 复制代码
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="file:///C:/code/web/vuepro/js/v2.6.10/vue.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
		<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
	</head>
	<body>
		<!-- 创建一个标签
			{{message}}插入一个值,不影响标签中的其他内容
			v-html="message",v-text="message"会覆盖标签中的其他内容
			
			{{message}},v-text="message" 不能解析标签中的html标签
			{{message}},v-html="message" 可以解析标签中的html标签
		 -->
		<div id="app">
		  <!-- {{ message }}
		  <p v-text="message">aaa</p>
		  <p v-html="message">1</p> -->
		  <input type="button" value="按钮1" v-on:click="test1()"/>
		  <input type="button" value="按钮2" @click="test2()">
		  <input v-model="name" />
		  <p>{{ message }}</p>
		  <p>{{ name }}</p>
		</div>
		<script>
			// 创建了一个vue对象
			var app = new Vue({
			  el: '#app',/* 绑定挂载点 */
			  data: {
			    message: '<b>Hello Vue!</b>',
				name:""
			  },
			  methods:{
				  test1(){
					  alert(this.message.split('').reverse().join(''));//翻转
				  },
				  test2(){
					  this.name = "tom";
				  }
			  }
			})
		</script>
	</body>
</html>
相关推荐
苏十八3 小时前
前端进阶:Vue.js
前端·javascript·vue.js·前端框架·npm·node.js·ecmascript
与墨学长6 小时前
Rust破界:前端革新与Vite重构的深度透视(中)
开发语言·前端·rust·前端框架·wasm
Amore05257 小时前
React+TS前台项目实战(二十三)-- 基于属性自定义数值显示组件Decimal封装
前端·react.js·typescript·前端框架
空白诗14 小时前
Monorepo(单体仓库)与 MultiRepo(多仓库): Monorepo 单体仓库开发策略与实践指南
前端·数据仓库·前端框架
LLLuckyGirl~15 小时前
react之错误边界
前端·react.js·前端框架
@PHARAOH19 小时前
WHAT - React useReducer vs Redux
前端·react.js·前端框架
前端扎啤20 小时前
解决npm与yarn痛点:幽灵依赖与依赖分身
前端·前端框架·npm·yarn·幽灵依赖
爱笑的源码基地1 天前
JAVA妇产科专科电子病历系统源码,前端框架:Vue,ElementUI
vue.js·elementui·前端框架·电子病历系统·源代码·java语言开发·产科管理系统源码
前端扎啤1 天前
高效前端开发:解密pnpm的存储与链接
前端·前端框架·npm·pnpm·依赖
narukeu1 天前
React 中 useState 和 useReducer 的联系和区别
前端·react.js·前端框架