Vue全家桶之Vue基础

1. Vue模板语法

1.1v-cloak指令用法

1.插值表达式存在的问题:“闪动”
2.如何解决该问题:使用v-cloak指令
3.解决该问题的原理:先隐藏,替换好值之后再显示最终的值

示例:

[v-cloak] {
  display: none;
}
<div v-cloak>
  {{ message }}
</div>
1.2数据绑定指令
1.2_1v-text 填充纯文本

示例:

<span v-text="msg"></span>
<!-- 和下面的一样 -->
<span>{{msg}}</span>
1.2_2v-html 填充HTML片段

① 存在安全问题
② 本网站内部数据可以使用,来自第三方的数据不可以用
示例:

<div v-html="html"></div>
1.2_3v-pre 填充原始信息

① 显示原始信息,跳过编译过程(分析编译过程)
示例:

<span v-pre>{{ this will not be compiled }}</span>
1.3 数据响应式
1.3_1v-once 只编译一次

① 显示内容之后不再具有响应式功能
②只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。

<!-- 单个元素 -->
<span v-once>This will never change: {{msg}}</span>
<!-- 有子元素 -->
<div v-once>
  <h1>comment</h1>
  <p>{{msg}}</p>
</div>
<!-- 组件 -->
<my-component v-once :comment="msg"></my-component>
<!-- `v-for` 指令-->
<ul>
  <li v-for="i in list" v-once>{{i}}</li>
</ul>
1.3_2v-model指令用法

双向数据绑定

<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>

在这里插入图片描述

1.4 事件绑定
1.4_1v-on指令用法

一般写法

<input type=‘button' v-on:click='num++'/>

简写

<input type=‘button' @click='num++'/>
1.4_2 事件函数的调用方式

直接绑定函数名称

<button v-on:click='say'>Hello</button>

调用函数

<button v-on:click='say()'>Say hi</button>
1.4_3事件函数参数传递
<button v-on:click='say("hi",$event)'>Say hi</button>

这里的 e v e n t 是 固 定 写 法 , 如 果 没 有 参 数 传 递 , 那 么 默 认 第 一 个 参 数 是 event是固定写法,如果没有参数传递,那么默认第一个参数是 eventevent,没有写$event也是。

1.4_4事件修饰符

stop 阻止冒泡

<a v-on:click.stop="handle">跳转</a>

prevent 阻止默认行为

<a v-on:click.prevent="handle">跳转</a>
1.4_5按键修饰符

enter 回车键

<input v-on:keyup.enter='submit'>

esc 退出键

<input v-on:keyup.delete='handle'>
1.4_6 自定义按键修饰符

全局 config.keyCodes 对象

Vue.config.keyCodes.f1 = 112
1.5属性绑定

v-bind指令用法

<a v-bind:href='url'>跳转</a>

缩写形式

<a :href='url'>跳转</a>
1.6 样式绑定
  1. class样式处理

对象语法

<div v-bind:class="{ active: isActive }"></div>

数组语法

<div v-bind:class="[activeClass, errorClass]"></div>
  1. style样式处理

对象语法

<div v-bind:style="{ color: activeColor, fontSize: fontSize }"></div>

数组语法

<div v-bind:style="[baseStyles, overridingStyles]"></div>
1.7 分支循环结构
1.7_1 分支结构

v-if
v-else
v-else-if
v-show

1.7_2v-if与v-show的区别

v-if控制元素是否渲染到页面
v-show控制元素是否显示(已经渲染到了页面)

1.7_3 循环结构

v-for遍历数组

<li v-for='(item,index) in list'>{{item}} + '---' +{{index}}</li>

(没写也没事,就是降低效率)key的作用:帮助Vue区分不同的元素,从而提高性能

<li :key='item.id' v-for='(item,index) in list'>{{item}} + '---' {{index}}</li>

v-for遍历对象

<div v-for='(value, key, index) in object'></div>

v-if和v-for结合使用

<div v-if='value==12' v-for='(value, key, index) in object'></div>
1.8表单域修饰符

number:转化为数值
trim:去掉开始和结尾的空格
lazy : 将input事件切换为change事件,input事件是及时操作的,而change事件是鼠标失去失去焦点才启动,所以change事件比input事件慢,因而叫lazy

<input v-model.number="age" type="number">
1.9自定义指令
1.9_1 自定义指令的语法规则(获取元素焦点)
Vue.directive('focus' {
	inserted: function(el) {
	// 获取元素的焦点
	el.focus();
	}
})
1.9_2 自定义指令用法
<input type="text" v-focus>
1.9_3 带参数的自定义指令(改变元素背景色)
Vue.directive(‘color', {
	inserted: function(el, binding) {
	el.style.backgroundColor = binding.value.color;
	}
})
1.9_4 指令的用法
<input type="text" v-color='{color:"orange"}'>
1.9_5局部指令
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <input type="text" v-color='msg'>
    <input type="text" v-focus>
  </div>
  <script type="text/javascript" src="js/vue.js"></script>
  <script type="text/javascript">
    /*
      自定义指令-局部指令
    */
    var vm = new Vue({
      el: '#app',
      data: {
        msg: {
          color: 'red'
        }
      },
      methods: {
        handle: function(){
          
        }
      },
      directives: {
        color: {
          bind: function(el, binding){
            el.style.backgroundColor = binding.value.color;
          }
        },
        focus: {
          inserted: function(el) {
            el.focus();
          }
        }
      }
    });
  </script>
</body>
</html>

1.10计算属性
computed: {
	reversedMessage: function () {
	return this.msg.split('').reverse().join('')
	}
}

计算属性与方法的区别
计算属性是基于它们的依赖进行缓存的
方法不存在缓存

1.11侦听器
watch: {
	firstName: function(val){
		// val表示变化之后的值
		this.fullName = val + this.lastName;
	},
	lastName: function(val) {
	this.fullName = this.firstName + val;
	} 
}
1.12生命周期

① beforeCreate 在实例初始化之后,数据观测和事件配置之前被调用。
② created 在实例创建完成后被立即调用。
③ beforeMount 在挂载开始之前被调用。
④ mounted el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。
⑤ beforeUpdate 数据更新时调用,发生在虚拟DOM打补丁之前。
⑥ updated 由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。
⑦ beforeDestroy 实例销毁之前调用。
⑧ destroyed 实例销毁后调用。

1.13数组相关API(响应式)
  1. 变异方法(修改原有数据)
    push()
    pop()
    shift()
    unshift()
    splice(),从第几个开始删,删几个
    sort()
    reverse()
  2. 替换数组(生成新的数组)
    filter()
    concat()
    slice()
  3. 修改响应式数据
    ⚫ Vue.set(vm.items, indexOfItem, newValue)
    ⚫ vm.$set(vm.items, indexOfItem, newValue)
    ① 参数一表示要处理的数组名称
    ② 参数二表示要处理的数组的索引
    ③ 参数三表示要处理的数组的值
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值