Vue.js的学习(2)

计算属性与观察者

模板内的表达式非常便利,但是设计他们的初衷是用来简化运算的。在模板内放入太多的逻辑会让代码难以维护
所以当我们要使用复杂逻辑的时候我们最好使用计算属性

<div id="example">
        <p>原始:{{message}}</p>
        <p>翻转后:{{reverseMessage}}</p>
</div>
//JS代码
var text=new Vue({
        el:"#example",
        data:{
            message:"Hello myWorld"
        },
        computed:{
            reverseMessage:function(){
               return this.message.split("").reverse().join("");
            }
        }
    });

那么这里有一个很关键的点,就是 computed和methods有什么区别

  • computed是基于他们的依赖进行缓存的,也就是说,在使用computed计算属性的时候,只要他的依赖值没有改变,他就会立即返回之前的计算结果,而不是再次执行函数
  • methods方法在我们每次触发重新渲染的时候,调用方法总会执行该函数,并且methods需要调用里面的方法。

当我们有一个非常复杂的逻辑运算的时候,我们应该使用computed来优化,当然,如果你不希望缓存,请使用methods

watch侦听属性

Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性,但是你很容易滥用这种属性

<div id="name">
    <p>{{fullName}}</p>
</div>
//JS代码
var name=new Vue({
    el:"#name",
    data:{
        firstname:"Liu",
        lastname:"Xiang",
        fullname:"LiuXiang"
    },
    watch:{
        firstname:function(val){
            this.fullname=val+" "+this.lastname
    },
        lastname:function(val){
            this.fullname=this.firstname+" "+val
    }
    }
})

我们可以用计算属性来改写这个侦听属性

<div id="name">
    <p>{{fullname}}</p>
</div>
//JS
var name=new Vue({
    el:"#name",
    data:{
        firstname:"Liu",
        lastname:"Xiang"
    },
    computed:{
        fullname:function(){
            return  this.firstname+" "+this.lastname
        }
    }
})

Style和Class绑定

//css
.heightLight{background-color:red;}
//HTML
<div id="app">
<p v-bind:class="{heightLight:open}">hello,vue</p>
</div>
//JS
var app=new Vue({
    el:"#app",
    data:{
        open:true
    }
})

这样做有一个强大的地方就是可以通过计算属性来是否呈现该类

 <div id="app">
        <p v-bind:class="classObject">hello</p>
 </div>
  //JS
  var app=new Vue({
        el:"#app",
        data:{
            isActive:true,
            error:null
        },
        computed:{
            classObject:function(){
                return {
                    heightLight:this.isActive&&!this.error
                }
            }
        }
    })

数组语法

我们可以把一个数组传给 v-bind:class,以应用一个 class 列表:,因为这个定义我们能通过多种方式来动态改变我们所需要的类

//css
        .heightLight{
            background-color: red;
        }
        .border{
            border: solid 2px red;
        }
//html
<div id="app">
        <p v-bind:class="[isActive?heightLight: ' ',border]">hello</p>
</div>
//JS
 var app=new Vue({
        el:"#app",
        data:{
            isActive:false,
            heightLight:"heightLight",
            border:"border"
        }
    })

绑定内联样式

v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。

<div v-bind:style="{fontSize:font+"px"}">Hello</div>
//JS
    var font=new Vue({
        el:"#font",
        data:{
         font:22
        }
    })

上面的代码可以改写为,当我们要添加多个属性的时候,会更加方便

<div v-bind:style="classList" id="font">Hello</div>
//JS
    var font=new Vue({
        el:"#font",
        data:{
            classList:{
                fontSize:"22px"
            }
        }
    })
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 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、付费专栏及课程。

余额充值