【Vue】vue基础学习笔记
基础
差值语法
<div id="root">
<h1>插值语法@萌狼蓝天 {{Date.now()}}</h1>
<h1>Meng Lang Lan Tian,Can you change it? >> {{number}}</h1>
<h2>{{message.toUpperCase()}}</h2>
<p>
1.创建Vue实例,传入配置对象
<br/>
2.容器中的Vue代码称为【Vue模板】
<br/>
3.容器中的代码依旧符合hmtl规范
<hr>
<div style="width: 100%;color:white;background-color: rgb(255, 193, 193);padding:2px 0 2px 2em;">
注意区分表达式和代码
</div>
</p>
</div>
<script>
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
el:'#root',//绑定元素 el:element 元素 | 用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符。
data:{
number:'0',
message:"do you know i'am big or small ?"
}
})//创建Vue实例
</script>
模板语法
<div id="app">
<!-- 插值语法 -->
<h1>Easy?{{is}}</h1>
<!-- 指令语法 | 功能:解析标签(标签属性、标签体内容、绑定事件……) -->
<a v-bind:href="url" target="_blank">点我跳转到博客</a>
<br>
<a :href="url" target="_blank">点我跳转到博客</a>
<hr>
<h1>Easy?{{school.is}}</h1>
<a :href="school.url" target="_blank">点我跳转到博客</a>
</div>
<script>
new Vue({
el:"#app",
data:{
is:"Right",
url:"https://cnblogs.com/mllt",
school:{
is:"Wrong",
url:"https://mllt.cc"
}
}
})
</script>
数据绑定
<div id="app">
单向数据绑定(v-bind):<input type="text" v-bind:value="name"><br/>
双向数据绑定(v-moudle):<input type="text" v-moudel:value="blog"><br/>
双向数据绑定(v-moudle):<input type="text" v-moudel:value="blog">
<!-- v-moudel只能用于表单类元素 -->
</div>
<script>
Vue.config.productionTip = false
new Vue({
el:"#app",
data:{
name:"萌狼蓝天",
blog:"htts://cnblog.com/mllt",
}
})
</script>
el与data的两种写法
el与data写法1
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
el:'#root',//绑定元素 el:element 元素(唯一根元素) | 用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符。
data:{
number:'0',
message:"do you know i'am big or small ?"
}
})//创建Vue实例
el写法2:挂载
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
data:{
number:'0',
message:"do you know i'am big or small ?"
}
})//创建Vue实例
console.log(vm)
//第二种写法
vm.$mount('#root')
//mount:挂载
//setTimeout(()=>{
// vm.$mount('#root')
//},3000) //3秒延迟
data写法2:函数式写法
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
//函数式写法
data:function(){
//必须要有return
return{
number:'0',
message:"do you know i'am big or small ?"
}
}
})//创建Vue实例
console.log(vm)
vm.$mount('#root')
下面是简写
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
//函数式写法 组件必须用函数式
// data:function(){
// console.log('@@@',this)//this:Vue的实例对象
// //必须要有return
// return{
// number:'0',
// message:"do you know i'am big or small ?"
// }
// }
//函数式写法 简写
data(){
console.log('@@@',this)//this:Vue的实例对象
//必须要有return
return{
number:'0',
message:"do you know i'am big or small ?"
}
}
//原则:由Vue管理的函数 禁止使用“=>”函数写法
})//创建Vue实例
console.log(vm)
vm.$mount('#root')
绑定样式
class样式
写法
:class="xxx"xxx可以是字符串、对象、数组。
字符串写法适用于:类名不确定,要动态获取。
对象写法适用于:要绑定多个样式,个数不确定,名字也不确定。
数组写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。style样式
:style="{fontSize: xxx}"其中xxx是动态值。
:style="[a,b]"其中a、b是样式对象。
绑定class样式
.basic{
border: 1px solid red;
}
.round{
border-radius:5px;
}
.text-center{
text-align: center;
}
.text-indent{
text-indent: 2em;
}
<div id="root" >
<!-- 绑定class样式, 字符串写法 适用于 样式的类名不确定,需要动态指定 -->
<div class="basic" :class="newClass">
Just play
</div>
<button @click='changeMood'>change</button>
<button @click='changeMood2'>change2</button>
<br>
<hr>
<br>
<!-- 绑定class样式,数组写法,适用于 要绑定的样式个数不确定,名字也不确定 -->
<div class="basic" :class="classArr">
Just play
</div>
<br>
<hr>
<br>
<!-- 绑定class样式,对象写法,适用于 要绑定的样式个数确定,名字也确定,但是要动态决定是否使用这些样式 -->
<div class="basic" :class="classObj">
Just play
</div>
</div>
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
el:'#root',
data(){
return{
newClass:'round',
classArr:['round','text-center','text-indent'],
classObj:{
round:true
}
}
},
methods:{
changeMood(){
this.newClass='text-center round'
},
changeMood2(){
const arr = ['round','text-indent','text-center']
const index = Math.floor(Math.random()*3)
this.newClass=arr[index]
},
}
})
vm.$mount('#root')
绑定style样式
.basic{
border: 1px solid red;
}
<div id="root" >
<div class="basic" :style="{fontSize:fsize+'px'}">
Just play
</div>
<br><br>
<!-- 绑定style样式,对象写法 -->
<div class="basic" :style="styleObj">
Just play
</div>
<br>
<br>
<div class="basic" :style="[styleObj1,styleObj2]">
Just play
</div>
<br>
<br>
<!-- 绑定style样式,数组写法 -->
<div class="basic" :style="styleArr">
Just play
</div>
</div>
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
el:'#root',
data(){
return{
fsize:40,
styleObj:{
fontSize:'40px',
},
styleObj1:{
color:'green',
fontSize:'20px',
},
styleObj2:{
background:'yellow',
},
styleArr:[
{
color:'green',
fontSize:'20px',
},
{
background:'yellow',
}
]
}
},
methods:{
}
})
vm.$mount('#root')
条件渲染
v-if
- 写法:
(1).v-if="表达式”
(2).v-else-if="表达式"
(3).v-else="表达式” - 适用于:切换频率较低的场景。
- 特点:不展示的DOM元素直接被移除。
- 注意:
v-if可以和:v-else-if、v-else一起使用, 但要求结构不能被“打断”。
- 写法:
v-show
- 写法: v-show=" 表达式"
- 适用于:切换频率较高的场景。
- 特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉
备注
使用v-if的时,元素可能无法获取到,而使用v-show 定可以获取到。
<div id="root">
<!-- 使用v-show做条件渲染 -->
<h2 v-show="wa">Oh Just Play1</h2>
<h2 v-show="1===1">Oh Just Play2</h2>
<!-- 使用v-if做条件渲染 -->
<h2 v-if="wa">Oh Just Play4</h2>
<h2 v-if="1===1">Oh Just Play3</h2>
<hr>
<h2>当前值为:{{n}}</h2>
<button @click="n++">n++</button>
<div v-show="n===1">v-Show 1</div>
<div v-if="n===2">v-if 2</div>
<div v-else-if="n===1">v-else-if 1</div>
<div v-else>v-else</div>
<!-- v-if 和 v-else 和 v-else-if 在使用时,要紧紧连在一起,不允许被打断,不然不形成整体 -->
<hr>
<!-- template只能和v-if使用,不能和v-show使用 -->
<template v-if="n===2">
<h2>路人甲</h2>
<h2>路人2</h2>
<h2>路人3</h2>
</template>
</div>
Vue.config.productionTip=false//隐藏控制台提示
const vm = new Vue({
el:'#root',
data(){
return{
wa:false,
n:0,
}
}
})
vm.$mount('#root')
【Vue】vue基础学习笔记的更多相关文章
- 两万字Vue.js基础学习笔记
Vue.js学习笔记 目录 Vue.js学习笔记 ES6语法 1.不一样的变量声明:const和let 2.模板字符串 3.箭头函数(Arrow Functions) 4. 函数的参数默认值 5.Sp ...
- 两万字Vue.js基础学习笔记(二)
Vue.js学习笔记(二) 4.模块化开发 ES6模块化的导入和导出 我们使用export指令导出了模块对外提供的接口,下面我们就可以通过import命令来加载对应的这个模块了 首先,我们需要在HTM ...
- 最新 Vue 源码学习笔记
最新 Vue 源码学习笔记 v2.x.x & v3.x.x 框架架构 核心算法 设计模式 编码风格 项目结构 为什么出现 解决了什么问题 有哪些应用场景 v2.x.x & v3.x.x ...
- 【C#编程基础学习笔记】4---Convert类型转换
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]4---Convert类型转换 ...
- 【C#编程基础学习笔记】6---变量的命名
2013/7/24 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com [C#编程基础学习笔记]6---变量的命名 ----- ...
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com ------------------------------------- ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- 0003.5-20180422-自动化第四章-python基础学习笔记--脚本
0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
随机推荐
- Linux软中断ksoftirqd
前言 在上一篇 LINUX软中断-softirq的描述中,提到过ksoftirqd,这篇文章就介绍ksoftirqd ksoftirqd 是什么? ksoftirqd 是个内核线程,在创建的时候是绑定 ...
- 随心所动,厂商的CPU核管理策略介绍
一.引文 随着CPU架构的发展,工艺的升级,带来性能提升,能效的提升(同性能下).但是由于极限性能的增加,也带来了peak功耗的增加(大部分情况下,能效比的提升无法抵消这部分),CPU功耗优化一直是广 ...
- 使用Git LFS上传大文件步骤
1.首先我们要先下载git lfs.链接地址 2.我们需要安装git lfs,但是必须安装到git/bin下面.就是你安装git的时候,那个路径.可以看我的git安装路径: 3.我们可以使用以下步 ...
- 共124篇!墨天轮“高可用架构”干货文档分享(含Oracle、MySQL、PG)
大家期待的高可用篇来啦!在上期<墨天轮高分技术文档分享-Oracle升级迁移篇>中大家对数据库高可用架构相关文档呼声较高,这不就来啦! 数据库的高可用架构能够在发生宕机或意外中断等故障时起 ...
- DDD实体和对象
实体 entity 标识符用来唯一定位一个对象,在数据库中我们一般用表的主键来实现标识符,主键和标识符的思考角度不同,就是 id 字段 : 实体:拥有唯一的标识符,标识符的值不会改变,而其他对象的状态 ...
- 39. 关于 diff 算法
diff 算法是vue渲染列表数据的时候,把新的 Vnode 和旧的 Vnode 比较,通过 key 值的对应,变化的标签就更新视图,不变的就复用 :
- P3472 [POI2008]MAF-Mafia
P3472 [POI2008]MAF-Mafia 解法 不难发现,这个题目建图后出现的是一个基环树森林+一堆环,因为每个点仅有一条出边. 大概长这样: 对于最大,最小值,我们分开考虑. 最大值 可以看 ...
- mac 系统使用vscode 创建c/c++ 工程项目 并配置断点调试
mac 使用vsCode 创建c/c++ 工程项目 并配置断点调试 使用vscode 创建c/c++工程项目 准备工作 使用 vscode 下载插件 C/C++ Project Generator 开 ...
- 深入解析C#异步编程:await 关键字背后的实现原理
C# 异步编程中 await 实现原理详解 在C#中,async 和 await 关键字用于编写异步代码.本文将详细介绍 await 的实现原理,包括状态机的生成.回调函数的注册和触发等关键步骤. 1 ...
- 2022/1/25-2022牛客寒假算法基础集训营1B-炸鸡块君与FIFA22(线段树)
题目描述 热爱足球(仅限游戏)的炸鸡块君最近购买了FIFA22,并且沉迷于FIFA22的Rivals排位上分. 在该排位系统中,每局游戏可能有胜利(用W表示).失败(用L表示).平局(用D表示)三种结 ...