一、Vue是什么?
1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象;
2.root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法;
3.root容器里的代码被称为【Vue模板】;
4.Vue实例和容器是一一对应的;
5.真实开发中只有一个Vue实例,并且会配合着组件一起使用;
6.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性;
7.一旦data中的数据发生改变,那么页面中用到该数据的地方也会自动更新;
二、基础知识
1.学习vue之前的事
1、下载VSCode工具:https://vscode.cdn.azure.cn/stable/b4c1bd0a9b03c749ea011b06c6d2676c8091a70c/VSCodeUserSetup-x64-1.57.0.exe
2.安装插件
View in browser(静态网址)、中文插件chinese
、安装vue开发者工具(添加到谷歌浏览器扩展工具中)、下载vue.js(使用开发版本能提示问题)
Live Server (open live server)
提示工具Vue 3 Snippets
Vue.config.productionTip = false 阻止vue在启动时生产提示
2.vue知识简介
1、vue插值语法和指令语法
代码如下(示例):
<body>
<!--
Vue模板语法有2大类:
1.插值语法:
功能:用于解析标签体内容。
写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。
2.指令语法:
功能:用于解析标签(包括:标签属性、标签体内容、绑定事件.....)。
举例:v-bind:href="xxx" 或 简写为 :href="xxx",xxx同样要写js表达式,
且可以直接读取到data中的所有属性。
备注:Vue中有很多的指令,且形式都是:v-????,此处我们只是拿v-bind举个例子。
-->
<!-- 准备好一个容器-->
<div id="root">
<h1>插值语法</h1>
<h3>你好,{{name}}</h3>
<hr/>
<h1>指令语法</h1>
<a v-bind:href="school.url.toUpperCase()" x="hello">点我去{{school.name}}学习1</a>
<a :href="school.url" x="hello">点我去{{school.name}}学习2</a>
</div>
</body>
<script type="text/javascript">
Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
new Vue({
el:'#root',
data:{
name:'jack',
school:{
name:'张三',
url:'http://www.baidu.com',
}
}
})
</script>
插值语法用于标签体中{{ }} 、指令语法用于解析标签(标签属性、标签体内容、绑定事件)
2、v_bind和v_model
v_bind:可以写成有了v_bind单向绑定还有双向绑定v_model:,
双算绑定只能应用于表单上(如input,select等) v_model:可以写成v_model
单向数据绑定:
<input type="text" v_bind:value='name'><br><br>
<input type="text" :value='name'><br><br>
双向数据绑定:
<input type="text" v-model:value='name'>
<input type="text" v-model='name'>
3、el与data的俩种写法
<body>
<!--
data与el的2种写法
1.el有2种写法
(1).new Vue时候配置el属性。
(2).先创建Vue实例,随后再通过vm.$mount('#root')指定el的值。
2.data有2种写法
(1).对象式
(2).函数式
如何选择:目前哪种写法都可以,以后学习到组件时,data必须使用函数式,否则会报错。
3.一个重要的原则:
由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了。
-->
<!-- 准备好一个容器-->
<div id="root">
<h1>你好,{{name}}</h1>
</div>
</body>
<script type="text/javascript">
Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
//el的两种写法
/* const v = new Vue({
//el:'#root', //第一种写法
data:{
name:'张三'
}
})
console.log(v)
v.$mount('#root') //第二种写法 */
//data的两种写法
new Vue({
el:'#root',
//data的第一种写法:对象式
/* data:{
name:'张三'
} */
//data的第二种写法:函数式
data(){
return{
name:'张三'
}
}
})
</script>
- *由vue管理的函数不要写成箭头函数否则指向的是windows