从0到1学习Vue框架Day01
目录
从0到1学习Vue框架Day01
1、初体验
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>初体验</title>
<!-- 安装Vue -->
<script src="../js/vue.js"></script>
</head>
<body>
<!-- 挂载点,指定Vue实例的挂载位置 -->
<div id="app"></div>
<!--
hello world
-->
<script>
/*
第一步:创建Vue实例
1、为什么要new Vue(),直接调用Vue()函数不行吗?
不行,因为直接调用Vue()函数,不创建实例的话,会出现以下错误:
Vue is a constructor and should be called with the `new` keyword
2、关于Vue构造函数的参数:options?
options是一个对象,对象中可以包含以下属性:
Vue框架要求这个options参数必须是一个纯粹的JS对象:{}
在{}对象中可以编写大量的key:value
主要是通过options这个参数来给Vue实例指定多个配置项。
3、关于template配置项:
template用来指定模板语句,模板语句是一个字符串形式的。
什么是模板语句?
Vue框架自己制定了一些具有特殊含义的特殊符号。
模板语句可以是一个纯粹的HTML代码,也可以是Vue中的特殊规则。
*/
const myVue = new Vue({
template: '<h1>hello world</h1>'
})
/*
第二步:将Vue实例挂载到id='app'的元素位置。
1、Vue实例都有一个$mount()方法,这个方法的作用是什么?
将Vue实例挂载到制定位置。
*/
myVue.$mount('#app')
</script>
</body>
</html>
2、模板语句的数据来源
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>模板语句的数据来源</title>
<script src="../js/vue.js"></script>
</head>
<body>
<div id="app"></div>
<script>
/*
模板语句的数据来源:
1、data选项可以给模板语句提供数据支持
2、data选项的类型是什么? Object | Function(对象或函数)
3、data配置项的专业叫法:Vue实例的数据对象
4、data数据如何插入到模板语句当中?
{{}}这是Vue框架自己搞的一套语法,被称为模板语法中的插值语法,{{data的key}}
*/
new Vue({
template: `<h1>最新上映的电视剧:{{name}},上映时间:{{releaseTime}},
主角是{{lead.name}},年龄为{{lead.age}},其他演员有{{actors[0].name}},今年{{actors[0].age}}
</h1>`,
data:{
name: '狂飙',
releaseTime: '2023-01-01',
lead:{
name:'高启强',
age:40
},
actors:[
{
name:'安鑫',
age:35
},
{
name:'高启兰',
age:30
}
]
}
}).$mount('#app')
</script>
</body>
</html>
3、template配置项详解
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>template配置项详解</title>
<script src="../js/vue.js"></script>
</head>
<body>
<div id="app">
<div>
<h1>{{msg}}</h1>
<h1>{{name}}</h1>
</div>
</div>
<script>
Vue.config.productionTip = false
new Vue({
/*
关于template配置项:
1、template后面指定的时模板语句,但是模板语句中只能有一个根结点。
2、只要data中的数据发生变化,模板语句一定会重新编译。
3、如果使用template配置项的话,指定挂载位置的元素会被替换。
关于$mount('#app')
el配置项和#mount()可以达到同样地效果。
*/
/*
错误的
template: '<h1>{{msg}}</h1> <h1>{{name}}</h1>'
*/
data:{
msg:'动力节点',
name:'老杜'
},
el: '#app'
})
</script>
</body>
</html>
4、Vue实例和容器的关系:一夫一妻制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vue实例和容器的关系是:一夫一妻制</title>
<script src="../js/vue.js"></script>
</head>
<body>
<div class="app">
<h1>{{msg}}</h1>
</div>
<div class="app">
<h1>{{msg}}</h1>
</div>
<div id="app2">
<h1>{{name}}</h1>
</div>
<script>
// Vue实例和容器只能是一对一
new Vue({
el : '.app',
data : {
msg : 'hello vue!!'
}
})
// Vue实例和容器只能是一对一
new Vue({
el : '#app2',
data :{
name : 'bjpowernode'
}
})
new Vue({
el : '#app2',
data :{
name : 'bjpowernode2'
}
})
</script>
</body>
</html>