前言

class绑定

对象绑定

:class='{active:isActive}'  // 相当于class="active"
:class="'active'" // 相当于class="active" ,这里绑定的是一个字符串
:class='classObject' // 配合计算属性使用,绑定一个函数 Vue.createApp({
data(){
return {
isActive: true
}
},
computed: {
classObject(){
return{}
}
}
}).mount('dom节点')

数组语法绑定

.active{
color: red;
}
.font{
font-size: 20px;
} :class='[activeClass, fontClass]' // 绑定对应css
// 绑定三目运算,后者表示isFont为true则绑定(并上)后面的样式
:class='[isActive ? activeClass : "", isFont&&fontClass]'
:class='[{active: isActive}, fontClass]' // 也可在数组中绑定对象 Vue.createApp({
data(){
return {
isActive: true
,isFont: false
,activeClass: 'active' // 绑定style
,fontClass: 'font'
}
}
}).mount('dom节点')

组件绑定class

  • 单根组件绑定class,在组件上同样可使用数组语法绑定
  • 多根组件绑定class,视图部分的组件需class绑定,脚本部分的模板使用:class='$attrs.class绑定的节点才起作用
<todo-item :class='[{active: isActive},fontClass]'></todo-item>
<my-component :class='[{active: isActive}]'></my-component> const app = Vue.createApp({
data(){
return {
isActive: true
,fontClass: 'font'
}
}
}) // 注册组件todo-item,模板中只有一个根节点元素是单根组件
app.component('todo-item', {
template: `<li>这是文本</li>`
}) // 多根组件:模板中有多个元素节点的组件
app.component('my-component', {
template: `<li :class='$attrs.class'>这是模板中li</li>
<p>这是模板中p标签</p>`
}) const vm = app.mount('dom节点')

内联样式对象

:style='{color: colorStyle, font: fontStyle}'
:style='styleObject' // 绑定一个样式对象
:style='[baseStyles, styleObject]' // 在数组中绑定多个样式对象 Vue.createApp({
data(){
return {
colorStyle: 'red'
,fontStyle: '24px'
,styleObject: { // 样式对象
color: 'red',
fontSize: '13px'
}
}
}
}).mount('dom节点')

列表渲染

<!-- v-if的优先级高于v-for,v-if在使用v-for的遍历对象时会报错,要想同时使用,需用template标签 -->
<ul>
<template v-for="todo in todos">
<!-- 显示所有要遍历的对象的id%2=0的对象名称 -->
<li v-if='todo.id % 2== 0'>{{todo.name}}</li>
</template>
</ul> const vm = Vue.createApp({
data(){
return {
todos: [
{},{},{} // 数组对象
]
}
}
}).mount('dom节点')
  • 变更方法
vm.todos.push({id: 6, name: 'c++'})  // 例如push()可用于添加对象

  • 替换数组
vm.todos = vm.todos.filter(item => item.id% 2==0)  // filter()用于过滤,item表示要遍历的对象

多事件处理

  • 一个事件绑定多个方法
@click='one(1, $event), two($event)'  // 视图部分,同时绑定两个方法,参数$event表示事件状态

Vue.createApp({
data(){
return{}
},
methods: {
one(id, e){
console.log("id:", id, ",e:", e);
},
two(e){
console.log("two:", e)
}
}
}).mount("dom节点")

表单输入绑定

<h3>单个复选框,绑定boolean</h3>
<input type="checkbox" v-model='flag'>记住登录
<p>{{flag}}</p>
<h3>修饰符lazy,文本框失去焦点时解析</h3>
<input type="text" v-model.lazy='msg'>
{{msg}} Vue.createApp({
data(){
return{
flag: null
,msg: ''
}
}
}).mount("dom节点")

vue3.0入门(三)的更多相关文章

  1. vue3.0入门(二)

    前言 最近在b站上学习了飞哥的vue教程 学习案例已上传,下载地址 指令 #id2{ // css部分 font-size: 24px; color: green; } v-bind:href=&qu ...

  2. vue3.0入门(一)

    前言 最近在b站上学习了飞哥的vue教程 学习案例已上传,下载地址 使用方式 使用在线cdn 下载js文件并自托管,引入到项目后使用 使用npm安装后,用cli来构建项目 声明式渲染 Vue2需引入v ...

  3. vue3.0入门(五):vite构建vue项目

    使用vite构建项目步骤 安装node,cmd输入:node -v验证是否安装成功:一般node安装后会自动安装npm,cmd输入:npm -v验证是否安装成功 选择一个文件夹作为项目文件夹,搜索框输 ...

  4. vue3.0入门(四):组件

    组件 组件基础 <my-counter></my-counter> const app = Vue.createApp({ // 根组件 data() { return {} ...

  5. ASP.NET Core 1.0 入门——了解一个空项目

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  6. 【原创】NIO框架入门(三):iOS与MINA2、Netty4的跨平台UDP双向通信实战

    前言 本文将演示一个iOS客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo.服务端将分别用MINA2和Netty4进行实现,而通信时服务端你只需选其一就行了.同 ...

  7. Omnet++ 4.0 入门实例教程

    http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...

  8. 《VC++ 6简明教程》即VC++ 6.0入门精讲 学习进度及笔记

    VC++6.0入门→精讲 2013.06.09,目前,每一章的“自测题”和“小结”三个板块还没有看(备注:第一章的“实验”已经看完). 2013.06.16 第三章的“实验”.“自测题”.“小结”和“ ...

  9. spring web flow 2.0入门(转)

    Spring Web Flow 2.0 入门 一.Spring Web Flow 入门demo(一)简单页面跳转 附源码(转) 二.Spring Web Flow 入门demo(二)与业务结合 附源码 ...

随机推荐

  1. 【强连通分量】Proving Equivalences

    [题目链接]hdu-2767 [题目描述] Consider the following exercise, found in a generic linear algebra textbook. L ...

  2. python读取数据写入excel

    '''写入excel文件''' import xlsxwriter # todo 创建excel文件 xl = xlsxwriter.Workbook(r'D:\testfile\test.xlsx' ...

  3. airtest前期准备(pocoSDK+unity打apk包+安装pocoui库)

    只介绍unity的环境准备,cocos的可以参考官方文档    https://poco-chinese.readthedocs.io/zh_CN/latest/source/doc/integrat ...

  4. jvm源码解读--17 Java的wait()、notify()学习

    write and debug by 张艳涛 wait()和notify()的通常用法 A线程取得锁,执行wait(),释放锁; B线程取得锁,完成业务后执行notify(),再释放锁; B线程释放锁 ...

  5. LinkedHashMap 与 LRUcache

    LRU 缓存介绍 我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求 ...

  6. SimpleDateFormat类的线程安全问题和解决方案

    摘要:我们就一起看下在高并发下SimpleDateFormat类为何会出现安全问题,以及如何解决SimpleDateFormat类的安全问题. 本文分享自华为云社区<SimpleDateForm ...

  7. 除了Swagger UI,你还能选择 IGeekFan.AspNetCore.RapiDoc

    IGeekFan.AspNetCore.RapiDoc 看到博客园上的这个文章,说了下Knife4J,评论里有人推荐RapiDoc,放了几个图,看了下,还不错. 心里 便有个想法,借着上次研究 Kni ...

  8. Python中比较运算符连用的语法规则

    在Python中,比较运用符<.>.<=.>=.== .!=可以连用,但语法规则和其它编程语言不一样 以 == 为例,具体语法规则是: a == b == c == d 等价于 ...

  9. 掌握JavaScript中的Promise,实现异步编程

    事件循环 基本介绍 JavaScript是一门单线程的编程语言,所以没有真正意义上的并行特性. 为了协调事件处理.页面交互.脚本调用.UI渲染.网络请求等行为对主线程造成的影响,事件循环(event ...

  10. SpringBoot报错:Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.

    Spring Boot报错:Error starting ApplicationContext. To display the conditions report re-run your applic ...