vue基础知识

这篇博客详细介绍了Vue的基础知识,包括Vue的定义、优缺点、Hello World实例、数据绑定机制、表达式、各种数据渲染方式(如普通渲染、条件渲染、循环渲染和双向绑定)、事件处理、组件创建与通信、生命周期、HTTP请求(axios)以及路由操作。适合Vue初学者入门学习。
摘要由CSDN通过智能技术生成

Vue基础知识

目录

  1. vue基础介绍
  2. vue的helloword(环境)
  3. 数据绑定机制(vue核心)
  4. 表达式
  5. 各种数据渲染
    5.1 普通渲染
    5.2 条件渲染
    5.3 循环渲染
    5.4 输入框双向绑定
  6. 事件处理
  7. 组件
  8. 生命周期
  9. 网络数据下载
  10. 路由

课程内容

1.vue基础介绍

q1.神马是vue
vue是一套构建用户ui界面的js框架
简单: vue是js框架
q2.什么是库,什么是框架
(1)调用方式
  库提供函数和对象, 我们使用函数和对象
  框架提供一个代码骨架,我们把代码填充到骨架内容
    框架去执行我们的代码

(2)限制
  库几乎没什么限制, 多个库我们可以组合使用
  框架具有限制, vue限制是mvvm, angular和mvc, recat虚拟dom

(3)常见库
  swiper,jquery, bootstrap提供组件
  zepto,iScroll,AlloyFinger,fastclick

(4)常见框架
  bootstrap栅格机制
  vue
  react
  angular
  .....

q3.关于vue
vue的作者: 尤雨溪(国人,经历国际化)

中文官网: cn.vuejs.org
国际官网: vuejs.org

vue官方教程: https://cn.vuejs.org/v2/guide/
vue api手册: https://cn.vuejs.org/v2/api/

版本: 现在学习版本 2.0
q5.vue的优点和缺点
	
优点:
  (1)vue相对其他框架学习简单,使用简单
  (2)vue适合多个交互,大中型的项目
  (3)使用组件,模板提供开发效率
  (4)适合做后台

劣势
  (1)学习成本的, 学到一定程度
  (2)经历思维的转变(vue没有直接dom操作)
  (3)不适合需要进行SEO的项目
    SEO 搜索引擎优化

内容: 新闻类....
<div id="app">
			{
  {msg}}
		</div>
		

		<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			
			//model
			var data = {
    
				msg:"hello world"
			}
			
			//viewModel
			var app = new Vue({
    
				el:"#app",
				data:data
			})
			
		</script>

2.vue的helloword(环境)

q.如何写一个hello world
  Step1: 写一个div,设置id=app

  Step2: 引入js

  Step3: 定义data,里面是数据

  Step4: 创建一个vue实例
    核心属性1: el, 表示vue操作的元素
    核心属性2: data,表示加载的数据
<!-- Step1: 写个vue基本结构 -->
		<div id="app">
			{
  {msg}}
		</div>
		
		<!-- Step2: 引入文件 -->
		<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
		
		<!-- Step3: 初始化 -->
		<script type="text/javascript">
			
			var data = {
    
				msg:"hello world"
			}
			
			var app = new Vue({
    
				el:"#app",
				data:data
			})
			
			
		</script>

3.数据绑定机制(vue核心)

q.为什么这样去写?
(1)基于mvvm机制

  层级1: v = view 界面视图

  层级2: vm = viewmodel 视图模型绑定

  层级3: m = model 数据模型

(2)作用:
  当数据改变,界面自动改变
  当界面输入值改变,数据自动改变

(3)数据绑定机制

4.表达式

q1.什么是表达式?
  js就有表达式, 1+1

  {
 {}} 放的也是表达式

q2.vue中 { {}} 能放什么?
  数学表达式能放
  字符串能放
  系统对象函数
  methods中定义的函数
  实例data属性定义的变量
q3.vue { {}}不能放什么
  全局定义的函数
  全局定义变量

<!-- view -->
		<div id="app">
			{
  {msg}}
			
			<p>{
  {100}}</p>
			<p>{
  {100+100}}</p>
			<p>{
  {(100-50)*3}}</p>
			
			<p>{
  {'aaa'}}</p>
			<p>{
  {'aaa'+'bbbb'}}</p>
			
			<p>{
  {Math.abs(-100)}}</p>
			
			<p>{
  {sum(10,20)}}</p>
	
			
		</div>
		

		<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
	
//			var a = 20
			
// 			function func () {
    
// 				return "func"
// 			}
			
			//model
			var data = {
    
				msg:"hello world"
			}
			
			//viewModel
			var app = new Vue({
    
				el:"#app",
				data:data,
				methods:{
    
					sum(x,y){
    
						return x+y
					}
				}
			})
			
		</script>

5.各种数据渲染

普通渲染

q1.如何实现普通渲染,把变量显示出来
语法: {
 {}}
语法: 
<!-- view -->
		<div id="app">
			
			<p>{
  {content}}</p>
			
			<p v-html='content'></p>
			
		</div>
		

		<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			
			//model
			var data = {
    
				msg:"hello world",
				content:`<ul>
							<li>11</li>
							<li>22</li>
							<li>33</li>
						</ul>`
			}
			
			//viewModel
			var app = new Vue({
    
				el:"#app",
				data:data
			})
			
		</script>

html渲染

q2.如何把html显示到vue的view上?
使用 v-html=""
<!-- view -->
		<div id="app">
			{
  {msg}}
			
			<p>
				<span>{
  {msg}}</span>
			</p>
			<p>
				<span v-text="msg"></span>
			</p>
		</div>
		

		<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			
			//model
			var data = {
    
				msg:"hello world"
			}
			
			//viewModel
			var app = new Vue({
    
				el:"#app",
				data:data
			})
			
		</script>

属性渲染

q3.如何渲染属性
使用 v-bind:属性名="变量名"

百度
图片


		<!-- view -->
		<div id="app">
			
			<p>
				<!-- wechat支持, vue不支持 -->
				<!-- <a href="{
   { url }}">百度</a> -->
			</p>
			
			<p>
				<a v-bind:href="url">百度</a>
			</p>
			
			<p>
				<a :href="url">百度</a>
			</p>
			
		</div>
		

		<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
		
		<script type="text/javascript">
			
			//model
			var data = {
    
				msg:"hello world",
				url:"http://www.baidu.com"
			}
			
			//viewModel
			var app = new Vue({
    
				el:"#app",
				data:data
			})
			
		</script>

样式渲染

q.如何渲染样式
普通: style=""
语法: v-bind:style="表达式"

案例1: v-bind:style=" '' "
案例2: v-bind:style=" {} "
语法3: v-bind:style=" 变量 "
简写语法: style=""
 <!DOCTYPE html>
<html>
   <head>
   	<meta charset="utf-8" />
   	<meta name="viewport" content="width=device-width, initial-scale=1">
   	<title></title>
   </head>
   <body>
   	
   	<!-- view -->
   	<div id="app">
   		{
  {msg}}
   		
   		<!-- 常用 -->
   		<p style="color:blue">
   			海阔天空
   		</p>
   		
   		<!-- 一般不用 -->
   		<p v-bind:style="  'color:blue'   ">
   			海阔天空
   		</p>
   		
   		<!-- 一般不用 -->
   		<p v-bind:style="  {
      color:'red','font-size':'24px'}   ">
   			海阔天空
   		</p>
   		
   		<!-- 常用 -->
   		<p v-bind:style="  s1   ">
   			海阔天空
   		</p>
   		
   		
   	</div>
   	

   	<script src="js/vue/vue.js" type="text/javascript" charset="utf-8"></script>
   	
   	<script type="text/javascript">
   		
   		//model
   		var data = {
    
   			msg:"hello world",
   			s1:{
    color:'red','font-size':'24px'}
   		}
   		
   		//viewModel
   		var app = new Vue({
    
   			el:"#app",
   			data:data
   		})
   		
   	</script>
   	
   </body>
</html>

class渲染

q.如何渲染class
语法:  v-bind:class="表达式"
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值