第1集 新版VueCli 4.3创建vue项⽬
简介:使⽤vue cli 4.3创建vue项⽬
Vue
模板语法开发起步
基于 HTML
的模版语法,允许声明式地将
DOM
绑定⾄底层
Vue
实例的数据。
⽤简洁的模板语法来声明式的将数据渲染进 DOM
的系统。
结合响应系统,在应⽤状态改变时, Vue
能够智能地计算出重新渲染组件并应⽤到
DOM
操
作上
创建测试
vue
项⽬
vue create my-project
vue-cli
创建项⽬,⽬录介绍
vscode
打开项⽬
需要打开⽂件夹,⽂件夹⾥⾯创建Html
原⽣
Vue
测试基础语法
使⽤
cdn
引⼊
vue
<!DOCTYPE html><html><head><meta charset="utf-8"><title> ⼩滴课堂 vue 快速⼊⻔ </title><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script></head><body></body></html>
- {{}}
⽂本插值
⾥⾯JavaScript
表达式⽀持
{{5+5}}{{ message.split('').reverse().join('') }}
Vscode⾥⾯快速打开html
安装 Live Server 插件
第2集 新版Vue快速⼊⻔之Vue指令和参数
简介:讲解什么是
Vue
指令
VUE
的⽂档
https://cn.vuejs.org/
指令
:
带有
v-
前缀的特殊属性。 指令⽤于在表达式的值改变时,将某些⾏为应⽤到
DOM
v-bind 指令
HTML 属性中的值更新时使⽤
v-if v-else 指令
逻辑判断
v-model 指令
实现双向数据绑定,
⼀般在 input、
select
、
textarea
、
checkbox
、
radio
等表单上使⽤
v-on指令
监听事件,并对⽤户的输⼊进⾏响应
参数
:
在指令后以冒号指明,例如
v-bind
指令被⽤来响应地更新
HTML
属性
<p> <a v-bind:href = "url" > ⼩滴课堂 </a> </p>
附加: 指令表达式取值是不⽤加 双花括号,直接写名字
跳转百度案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue 1</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
<!-- 使用双括号引用 -->
<p>{{message}}</p>
<!-- {{}}相当于表达式运算,也就是执行了javascript -->
<p> {{6+6}}</p>
<!-- reverse()字符的反转,使用他之前必须切割成一个一个的字符 -->
<p>{{message.split('').reverse().join('')}}</p>
<p>{{message.split('').reverse()}}</p>
<p><a v-bind:href="url">百度地址</a></p>
</div>
<script>
new Vue({
//绑定元素
el:"#app",
//数据源
data:{
message:"这是一个数据源 ,欢迎来到xiaojia",
// 定义个百度地址
url:"http://www.baidu.com"
},
//定义方法
methods:{
}
})
</script>
</body>
</html>
结果显示:
第3集 新版Vue快速⼊⻔之v-if 和v-else条件指令
简介:讲解新版
Vue
条件指令
- v-if v-else逻辑判断
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue 1</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
<h2>使用随机数来判断</h2>
<p v-if="Math.random() > 0.6">大于0.6</p>
<p v-else>小于0.6</p>
<!-- 相当于display:none 隐藏-->
<p v-show="Math.random()>0.6">使用v-show 大于0.6</p>
<p v-if="range >= 0.4">大于等于0.4</p>
<p v-else>小于0.4</p>
</div>
<script>
new Vue({
//绑定id ,改Vue应用到那个元素中
el:"#app",
data:{range:0.5},
methods:{}
})
</script>
</body>
</html>
结果显示:
第4集 新版Vue快速⼊⻔之v-for 循环指令
简介:讲解新版Vue的v-for 循环指令
- v-for 循环指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-forDemo</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
<ol>
<li v-for="user in Users">
{{user.name}}&{{user.age}}
</li>
</div>
</div>
<script>
new Vue({
el:"#app",
data:{
Users:[
{name:"小姐姐",age:18},
{name:"小牛",age:29},
{name:"xiaohai",age:11}
]
},
methods:{
}
})
</script>
</body>
</html>
运行结果:
第5集 新版Vue快速⼊⻔之v-model
简介:讲解新版Vue的v-model
- v-model 实现双向数据绑定 ,也就是你更改input数据,同步的更新视图中被绑定的数据。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-modelDemo</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
{{message}}</br>
<input type="text" v-model="message">
</div>
<script>
new Vue({
el:"#app",
data:{message:111},
methods:{}
})
</script>
</body>
</html>
运行结果:
当我没有编辑的input数据的显示结果
当我编辑之后的显示结果:
第6集 新版Vue快速⼊⻔之v-on监听事件
简介:讲解新版Vue的v-on指令 监听事件
- v-on 监听事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-onDemo</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
<p>{{title}}</p>
<!-- 设置一个点击事件 -->
<button v-on:click ="ChangeTitle">完善标题</button>
<!-- 使用快捷方式 -->
<button @click ="ChangeTitle">完善标题</button>
</div>
<script>
new Vue({
el:"#app",
data:{
title:"这是小家活动室标题"
},
methods:{
ChangeTitle:function(){
this.title= "||2022年 小家" + this.title;
}
}
})
</script>
</body>
</html>
运行结果:每次点击事件之后,会添加|| 2022年 小家这个字符串
第7集 Vue常⻅缩写 v-bind和v-on讲解
简介:vue常⻅缩写v-bind和v-on讲解
- v-bind缩写
<!-- 完整语法 --><a v-bind:href="url">...</a><!-- 缩写 --><a :href="url">...</a>
- v-on缩写
<!-- 完整语法 --><a v-on:click="changeTitle">...</a><!-- 缩写 --><a @click="changeTitle">...</a>
第8集 新版Vue快速⼊⻔之component组件
简介:讲解vue⾥⾯的组件
- vue的组件
- 扩展 HTML 元素,封装可重⽤的代码(就是通⽤的模块)
-
注册组件
-
Vue.component( 组件名 , 选项 )
-
-
组件可以拷⻉多次,复⽤多次
- 每个组件都会各⾃独⽴维护它的数据
-
data 必须是⼀个函数,⽽不是前⾯讲的 json 对象
-
每个实例可以维护⼀份被返回对象的独⽴的拷⻉ , 否则数据就会共享出现问题
-
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>组件</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
<!-- 注意每个组件里面的cuont都是单独的,不是共用一个内存地址 -->
<xj_component></xj_component>
<xj_component></xj_component>
</div>
<script>
Vue.component("xj_component",{
data:function(){
return {
count:0 //
}
},
//创建个组件格式,复用到xj_component元素中
template:'<button v-on:click="count++"> 点击{{count}}次 </button>'
})
new Vue({
el:"#app",
data:{},
methods:{}
})
</script>
</body>
</html>
运行结果:注意每个组件里面的cuont都是单独的,不是共用一个内存地址
第9集 新版Vue快速⼊⻔之prop向⼦组件传值
简介:讲解vue⾥⾯通过prop向⼦组件传值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>组件</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
</head>
<body>
<div id="app">
<!-- 注意每个组件里面的cuont都是单独的,不是共用一个内存地址 -->
<!-- 子组件写入值 -->
<xj_component message="小家活动室 http://www.baidu.com"></xj_component>
<xj_component message="这是另外一个子组件"></xj_component>
</div>
<script>
Vue.component("xj_component",{
//向子组件传值
props:{
message:{
//传值的类型
type:String
}
},
data:function(){
return {
count:0 //
}
},
//创建个组件格式,复用到xj_component元素中,子组件传输到这里引用
//组件里面的根节点只能包含一个
template:'<div><p><button v-on:click="count++"> {{message}} 点击{{count}}次 </button></p></div>'
})
new Vue({
el:"#app",
data:{},
methods:{}
})
</script>
</body>
</html>
运行结果:
- 向⼦组件传外部data的⾥值,需要加 v-bind
<xd_component message=" ⼩滴课堂 https://xdclass.net" v-bind:XXXX></xd_component>或缩写<xd_component message=" ⼩滴课堂 https://xdclass.net" :XXXX></xd_component>