Vue学习笔记(二)Vue插值

Vue+leaflet笔记之克里金插值 本文介绍了Web端使用Leaflet开发库进行克里金插值的三种方法 (底图来源:天地图),分别结合了kriging、kriging-contour组件库实现克里金插值功能,效果如下图所示。 阅读详情

纯文本


通过使用{{}}可以绑定Vue实例中的data对象中的属性,这种绑定得到的是纯文本

<div id="app">
    <p>{{msg}}</p>
</div>
<script>
    let vm = new Vue({
         el: '#app',
         data: {
             msg: 'vue'
         }
     });
</script>

除了直接使用{{}}来对数据进行绑定纯文本,也可以通过v-text来绑定,得到的结果仍是纯文本

    <div id="app">
        <p v-text="msg"></p>
    </div>
    <script>
        let vm = new Vue({
            el: '#app',
            data: {
                msg: 'vue'
            }
        });
    </script>

HTML文本


如果我们想把一段文本作为html来处理的话,使用上面的方法会和我们所要的结果有一定的差错

<div id="app">
    <p>{{msg}}</p>
</div>
<script>
    let vm = new Vue({
         el: '#app',
         data: {
             msg: '<span style="color:red">vue</span>'
         }
     });
</script>

如果是上面这种写法,那么页面打开后出现的会是<span style="color:red">vue</span>而不是我们想象中的红色的vue,如果要达到我们要的效果,就需要使用v-html

<div id="app">
    <p v-html="msg"></p>
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            msg: '<span style="color:red">vue</span>'
        }
    });
</script>

属性


Vue实例中data对象中的属性不能直接在html的属性上使用,要通过v-bind来实现。

一般的属性使用

<div id="app">
    <input type="text" v-bind:value="msg">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            msg: 'vue'
        }
    });
</script>

v-bind的缩写

v-bind可以使用“:”来代替,结果是一样的。下面这段代码与上面的代码是相同的。

<div id="app">
    <input type="text" :value="msg">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            msg: 'vue'
        }
    });
</script>

JavaScript表达式

v-bind绑定的属性后面其实是一个JavaScript表达式,也即是说可以在这里使用字符串的拼接

<div id="app">
    <input type="text" :value="msg+'123'">
</div>
<script src="lib/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            msg: 'vue'
        }
    });
</script>

控制样式

v-bind在样式的控制上很有用

通过class控制

直接绑定

.bgColor {
    background-color: red;
}
<div id="app">
    <input type="text" :class="bg">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            bg: "bgColor"
        }
    });
</script>

通过这种绑定方式,我们可以通过改变data中的bg来改变该元素的class,不用通过DOM来进行操作。

通过对象语法的布尔值控制

.bgColor_r {
    background-color: red;
}

.bgColor_b {
    background-color: blue;
}
<div id="app">
    <input type="text" :class="{bgColor_r:flag,bgColor_b:unflag}">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            flag: true,
            unflag: false
        }
    });
</script>

input标签渲染出来后为

<input type="text" class="bgColor_r">

通过这种方式,我们可以让两个样式对应相反的布尔值,这样只要取反该布尔值,就可以对样式进行改变

<div id="app">
    <input type="text" :class="{bgColor_r:flag,bgColor_b:!flag}">
    <input type="button" @click="change" value="更改样式">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            flag: true
        },
        methods: {
            change() {
                this.flag = !this.flag;
            }
        }
    });
</script>

这里通过点击按钮就可以改变样式,而事实上这也只是改变了一个flag值。

数组形式

如果要同时使用多个class,也可以使用传入数组的形式

.bgColor_r {
    background-color: red;
}

.fontColor {
    color: blue;
}
<div id="app">
    <input type="text" :class="['bgColor_r','fontColor']">
</div>

被渲染为

<input type="text" class="bgColor_r fontColor">

在数组中也可以使用对象的语法

<div id="app">
    <input type="text" :class="[{bgColor_r:flag},'fontColor']">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            flag: true
        }
    });
</script>

这样的结果与上面的代码是一样的。

内联样式

直接绑定

内联样式的直接绑定,通过在data中写出样式来控制。

<div id="app">
    <input type="text" :style="style1">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            style1: {
                color: 'blue',
                'font-size': '20px'
            },
        }
    });
</script>

渲染为

<input type="text" style="color: blue; font-size: 20px;">

通过对象语法的布尔值控制

内联样式的对象语法与直接在其上写样式很类似,相当直观,只是样式的具体内容写在data中。

<div id="app">
    <input type="text" :style="{color:col,'font-size':font_size+'px'}">
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            col: 'red',
            font_size: 12
        }
    });
</script>

渲染为

<input type="text" style="color: red; font-size: 12px;">

数组形式

<div id="app">
    <input type="text" :style=[style1,style2]>
</div>
<script>
    let vm = new Vue({
        el: '#app',
        data: {
            style1: {
                color: 'blue',
                'font-size': '20px'
            },
            style2: {
                'text-decoration': 'underline',
                border: '1px solid black'
            }
        }
    });
</script>

渲染为

<input type="text" style="color: blue; font-size: 20px; text-decoration: underline; border: 1px solid black;">

过滤器


Vue中的过滤器用于对要插入的值做处理

要注意的是,过滤器的出现就是为了操作文本而不操作data里面的数据,所以里面的this指向无法引用data里面的数据

构建过滤器

全局过滤器

Vue.filter("globalFilter", function(data, arg1) {
       return `${data}  全局过滤器`;
});

这里globalFilter是过滤器方法的名字,后面的方法是对插入值的处理,return出来的就是处理后的值,data是原数据,arg1是传入的参数,要注意的是在调用该过滤器时传入参数第一个为这里的arg1,data已经固定为原数据。全局过滤器可以在各个Vue实例中使用,但是全局过滤器要在Vue实例构建之前先构建。

局部过滤器

let vm = new Vue({
    el: '#app',
    data: {},
    filters: {
        partFilter: (data, str) => {
            return `${data}    私有过滤器  添加的内容有  ${str}`;
        }
    }
});

这里的partFilter是局部过滤器方法的名字,后面是方法体,return出来的是处理后的值,data是原数据,str是传入的参数,要注意的是在调用该过滤器时传入参数第一个为这里的arg1,data已经固定为原数据。局部过滤器只能在当前实例中使用。

过滤器的使用

过滤器通过{{msg|filter}}来使用,msg为原数据,而filter则为调用的过滤器,后面可以加括号调用参数

<div id="app">
    <p>{{msg | globalFilter(1)}}</p>
    <p>{{msg | partFilter(2)}}</p>
</div>
<script>
    Vue.filter("globalFilter", function(data, arg1) {
        return `${data}  全局过滤器 ${arg1}`;
    });
    let vm = new Vue({
        el: '#app',
        data: {
            msg: 'vue'
        },
        filters: {
            partFilter: (data, str) => {
                return `${data}    私有过滤器  添加的内容有  ${str}`;
            }
        }
    });
</script>

最后渲染出来是

<div id="app">
    <p>vue  全局过滤器 1</p> 
    <p>vue    私有过滤器  添加的内容有  2</p>
</div>

过滤器也可以串连,串连时会先使用第一个过滤器处理,将处理后的值作为原数据传给第二个过滤器

<p>{{msg | globalFilter(1)| partFilter(2)}}</p>

渲染为

<p>vue  全局过滤器 1    私有过滤器  添加的内容有  2</p>

值得一提的是,如果原数据发生改变,那么过滤器会对新的数据进行一次新的“过滤”,这个功能感觉上和computed有点类似,不同的是在computed可以使用this来借用data中的数据处理当前的数据,而filters不行

v-model指令 - 双向数据绑定 前言 什么是双向数据绑定 vue是一个mvvm框架,即数据双向绑定,它允许当数据发生变化的时候,视图也发生变化,当视图发生变化的时候,数据也会跟着同步变化。我们所说的数据双向绑定,一定是对于UI控件来说的,非UI控件不会涉及到数据双向绑定。 简述双向绑定 所谓双向绑定,当M层数据更改时自动更新V层数据,反之V层更改时自动更新M层数据。 与单项绑定区别 当M层数据更改时自动更新V层数据,而当V层更改... 阅读详情

相关推荐

ROS新手必看:5分钟搞定URDF小车建模(附Rviz可视化调试技巧)

本文为ROS新手提供了快速构建URDF机器人模型的实战指南。通过一个完整的两轮差速小车建模案例,详细解析了URDF的核心语法、Rviz可视化调试技巧以及常见问题排查方法,帮助初学者快速掌握ROS机器人建模与可视化调试的核心技能。

weixin_29079643的博客 250

【vue的基础使用】

vue的基础使用、vue创建项目、创建vue项目、

qq_51076413的博客 2545

Calpuff模型实战:从气象数据预处理到污染物扩散模拟全流程指南

本文提供了一份详尽的Calpuff模型实战指南,涵盖从气象数据预处理、地形处理到污染物扩散模拟与结果可视化的全流程。重点解析了Calmet气象场构建、Calpuff核心参数配置,并与AERMOD模型进行对比,帮助环境工程师与科研人员掌握这一强大的三维非稳态拉格朗日扩散模型,以应对复杂地形、海岸熏烟等实际模拟挑战。

s4t5u6v7的博客 460

vue基础-动态class / class = “{类名 : 布尔值}“

vue基础-动态class 目标:用v-bind给标签class设置动态的值 语法 :class = “{类名 : 布尔值}” true使用,false不用 <template> <div> <button @click="bl = !bl">点击按钮布尔值取反</button> <!-- :class="{ 类名 :布尔值}" --> <div :class="{red: bl}"&gt

Henry_ID的博客 1166

高通ISP模块全解析:从Raw到JPEG的18个关键处理步骤(附避坑指南)

本文全面解析高通ISP模块从Raw到JPEG的18个关键处理步骤,涵盖原始数据预处理、色彩科学处理链、画质增强与降噪等核心环节。通过实战调优经验,揭示ISP架构中的技术原理与工程实践要点,帮助开发者避免常见问题,提升移动影像处理质量。

weixin_30399155的博客 360

北航机器学习期末考试试题2020年春

北航机器学习期末考试试题2020春 看csdn上试题收费,积分还挺高,本着共享的理念,把2020春季ML考试的试题公开,若侵权,立删 前8道题10分,第9题20分 决策树采用ID3算法 对宇宙星球是否适合生存分类 SVM的原理;软间隔、硬间隔;以及对非线性样本点分类 集成学习的原理,以及及串行boosting以及bagging的简单概括 K-means与混合高斯模型的异同以及EM算法的原理,如何计算 马尔可夫随机场最大团;马尔可夫随机场的联合概率分布(势函数表示),贝叶斯网络联合概率分布 PCA主成分基于

qq_43343919的博客 5424

TypeScript(三)

TypeScript类型

forgetyoupyj的博客 352

华为昇腾Atlas 200I DK A2实战:从开箱到运行首个AI应用

本文详细介绍了华为昇腾Atlas 200I DK A2开发板从开箱到运行首个AI应用的全过程。包括硬件准备、系统烧录、开发板连接方案、AI应用运行及性能优化技巧,帮助开发者快速上手部署AI项目,提升开发效率。

weixin_27038245的博客 594

vuejs之插值表达式

什么是插值表达式? 插值表达式是Vuejs中实现数据渲染到页面的一种手段,可以直接让数据从模型到视图,不需要dom操作,在大括号里面给我们提供了js语境,可以执行简单的js代码 插值表达式就是{{ }},如下操作,将模型变量中的属性直接放到插值表达式中可以实现数据渲染到页面的效果, <body> <div> {{ title }} <...

RyleeLouth的博客 8523

基于Simulink的异步电机参数在线辨识与自适应控制仿真

本文基于Simulink平台,详细介绍了异步电机参数在线辨识与自适应控制系统的仿真实现。针对异步电机运行中参数时变问题,采用模型参考自适应系统(MRAS)实时辨识转子电阻和互感,并结合自适应PI控制策略动态调整控制器参数。通过搭建完整的矢量控制(FOC)仿真模型,验证了系统在稳态辨识、参数摄动和动态响应等工况下的性能:参数辨识误差<1.2%,转速跟踪误差<20rpm,动态响应时间<10ms。文章还提供了详细的Simulink建模步骤、核心代码实现及性能分析,为高级电机控制系统的设计与优化提

amy_mhd的博客 73

RK3568移植AP6256

本文主要是记录RK3568移植正基的AP6256的WIFIBT模块,感兴趣的朋友可以一起学习!!!提示:以下是本篇文章正文内容,下面案例可供参考。

qq_24093081的博客 3716

vue3的模板插值

vue3模板插值

m0_74242675的博客 1099

EtherCAT主站SOEM -- 18 --Qt-Soem通过CSV模式(周期同步速度模式)控制一个电机转圈圈

以上就是 EtherCAT主站SOEM – 18 --Qt-Soem通过CSV模式(周期同步速度模式)控制一个电机转圈圈 的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 1212

Vue:模板语法-插值

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 HTML 解析器解析。 在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。

ChinaDragon10的博客 1189

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Vue模板语法——插值

Vue具有自己的模板语法,如果你已经有了后端的学习经验,那么你应该知道,在后端框架中具有框架自带的前端语法,比如django就有自带的模板语法,可以直接写在后端,与服务器进行交互。

布小禅的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

后端前行Vue之路(二):模版语法之插值与指令

Vue.js的模板语法是一种将Vue实例的数据绑定到HTML文档的方法。Vue的模板语法是一种基于HTML的扩展,允许开发者将Vue实例中的数据绑定到HTML元素,以及在HTML中使用一些简单的逻辑和指令。Vue.js 基于 HTML 的模板语法允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML,所以能被遵循规范的浏览器和 HTML 解析器解析。在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。

weixin_41821642的博客 1316

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Vuejs学习2.1 vue语法——插值语法,动态绑定属性

Vue语法插值语法Mustache语法v-oncev-htmlv-textv-prev-cloak动态绑定基本使用动态绑定class对象语法数组语法动态绑定style对象语法数组语法综合例子 首先我们需要new一个vue对象来实现对特定id得模块进行操作,el表示模块的id(为字符串),data表示用到的数据(为对象),还包含methods等等 <script> const app = new Vue({ el:'#app', data:{ message:"你好

qq_39225271的博客 938

vue文本插值

分类示例描述基础变量直接显示setup中返回的myData的值。算术运算可以执行加减乘除等数学计算。对象属性访问可以访问对象的深层属性。方法调用可以调用setup中返回的方法,并传入参数。三元表达式'显示' : '隐藏' }}是if-else在模板中最常见的替代方案。其他表达式任何能返回一个值的 JS 表达式链都是有效的。最佳实践:虽然模板中支持复杂的表达式,但为了保持模板的声明性和可读性,推荐将过于复杂的逻辑封装在方法或计算属性computedproperty)中。

Yqha1的博客 1068

vue的插值操作

插值操作:将vue实例中data里面的某个值,插到页面DOM元素上进行显示。 并改变data值可以动态改变显示。 1、Mustache 1.Mustache (胡子/胡须) 可以通过Mustache语法(也就是双大括号{{}})来进行插值操作; 数据绑定最常见的形式就是使用“Mustache”语法的文本插值 2.Mustache语法,不仅仅可以直接写变量,也可以写简单的表达式 <div id="app"> <h2>{{message}}</h2&g.

韩旭不会敲代码吧的博客 2391

vuejs介绍

#什么是vuejs vuejs是一套用于构建用户界面的渐进式框架(一个前端框架) Vue 只关注视图层, 采用自底向上增量开发的设计。 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。 Vue 学习起来非常简单,本教程基于 Vue 2.1.8 版本测试。 #vue 的安装 1、直接在官网下载,然后用 ,但是这个有一个问题,那就是当你没网的时候,这个就不能用了 补充:C...

ghost_violets的博客 1438

Vuejs

vuejs简单入门 1.VueJS 概述与快速入门 1.1 VueJS介绍 Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑 定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 Vue官网=====> 1.2 MVVM模式 MVVM是Model-View-ViewModel的简写。它本质上就是MVC...

qq_42121746的博客 2545

Vue - 插值

Vue实例data中的值可以很方便的在dom中直接使用,具体请看下方示例: <script> new Vue({ el: '#app', data: { text: '我是一行文本', html: '<span>我是文本</span>', imtes: [ {name: sp1, value: 1}, {nam...

日常爱喝茶,闲时聊科技 571

Vue2+Vue3学习笔记

v2v3https://v3.cn.vuejs.org/ 会重定向到Vue.js - 渐进式 JavaScript 框架 | Vue.jsVue.js - 渐进式的 JavaScript 框架从v2过渡到v3在F盘创建v2+v3学习笔记并用VSCODE打开。

tiantiantbtb的博客 2026

vue的指令和插值总结

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

python全栈 2579

vue模板html,VueJS模板

本篇文章帮大家学习VueJS模板,包含了VueJS模板使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。在前面的章节中我们已经学到了如何在屏幕上以文本内容的形式获得输出。 在本章中将学习如何在屏幕上以HTML模板的形式获取输出。要理解这一点,让我们先看看一个例子,并在浏览器中看到输出。创建一个文件:template.html -VueJs模板名字 : {{name}}城市...

weixin_36371504的博客 927
上一篇: Vue学习笔记(一)Vue实例的构建和Vue实例生命周期
下一篇: Vue学习笔记(三)Vue事件处理
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值