Vue介绍 | 描述 |
---|---|
1.Vue是一个JavaScript框架 | 框架:别人写好的js文件 |
2.作用 : 构建用户页面 | 将数据渲染到页面 |
3.特点:渐进式 | 组件式开发 |
JavaScript框架
构建用户页面
的框架
渐进式框架
虚拟DOM本质是一个js对象
原始的前端开发 | Vue.js的前端开发 |
---|---|
1.使用HTML+CSS搭建页面 | 1.使用HTML+CSS搭建页面 |
2.使用异步请求技术向后台请求数据 | 2.使用异步请求技术向后台请求数据 |
3.使用原生的js或者jQuery操作DOM,渲染数据 | 3.Vue自动渲染数据 |
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
{{ message }}
<br>
{{ name }}
<br>
{{ age }}
<br>
{{ sex }}
div>
<script>
/* 3.初始化配置 */
/*
(1)Vue是导入vue.js之后得到的一个全局构造函数
(2)调用Vue构造函数 创建一个vue实例对象
*/
let app = new Vue({
//el: element 用来设置vue实例的挂载点(将数据渲染到哪个元素身上)
el: '#app',
//data: 要渲染的数据
/* 数据驱动:vue会根据data中的数据,自动渲染页面(无需DOM操作) */
data: {
message: 'Hello Vue!',
name:'坤哥',
age:32,
sex:'男'
}
})
script>
body>
html>
el挂载点官方文档传送门:https://cn.vuejs.org/v2/api/#el
1.挂载点el
作用 : 告诉vue实例,你要将data中的数据渲染到哪一个视图
2.注意点
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="hm">
<div id="app">
{{ message }}
div>
<hr>
<div id="box" class="container">
{{ message }}
div>
<hr>
<div class="container">
{{ message }}
div>
div>
<script>
/* 3.初始化配置 */
/*
(1)Vue是导入vue.js之后得到的一个全局构造函数
(2)调用Vue构造函数 创建一个vue实例对象
*/
let app = new Vue({
//el: element 用来设置vue实例的挂载点(将数据渲染到哪个元素身上)
/*
(1)挂载点可以使用 id选择器(vue推荐使用) 类选择器 标签选择器
(2)如果选择器选中了多个元素,只会选择第一个元素
(3)挂载点不能设置为html和body标签 (程序报错)
*/
el: '#hm',
//data: 要渲染的数据
/* 数据驱动:vue会根据data中的数据,自动渲染页面(无需DOM操作) */
data: {
message: 'Hello Vue!'
}
})
script>
body>
html>
插值表达式
有点类似于
以前学习的 art-template
模板语法,但是不同的框架有自己不同的语法规则注意点
{{ }}
: 插值表达式,也叫胡子语法DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
名字: {{ name }} <br>
年龄: {{ age + 1 }} <br>
介绍: {{ age>30?'大叔':'欧巴' }} <br>
女朋友:{{ girlFried[1] }} <br>
女儿: {{ daughter.name }} <br>
div>
<script>
/* 3.初始化配置 */
/*
(1)Vue是导入vue.js之后得到的一个全局构造函数
(2)调用Vue构造函数 创建一个vue实例对象
*/
let app = new Vue({
//el: element 用来设置vue实例的挂载点(将数据渲染到哪个元素身上)
/*
(1)挂载点可以使用 id选择器(vue推荐使用) 类选择器 标签选择器
(2)如果选择器选中了多个元素,只会选择第一个元素
(3)挂载点不能设置为html和body标签 (程序报错)
*/
el: '#app',
//data: 要渲染的数据
/* 数据驱动:vue会根据data中的数据,自动渲染页面(无需DOM操作)
(1) {{ }} : 插值表达式,也叫胡子语法
(2) 插值表达式作用:将数据渲染到页面
(3) 支持二元运算 {{ age + 1 }}
(4) 支持三元运算 {{ age>30?'老男人':'小鲜肉' }}
(5) 支持数组与对象的取值语法
(6) 不支持分支语法与循环语法
*/
data: {
message: 'Hello Vue!',
name: '坤哥',
age: 32,
sex: '男',
girlFried:['代码','学生','咖啡'],
daughter:{
name:'小布丁',
age:1
}
}
})
script>
body>
html>
指令名称 | 指令作用 | 示例 | 简写形式 |
---|---|---|---|
v-text | 设置元素的innerText | v-text="111" |
无 |
v-html | 设置元素的innerHTML | v-html=" |
无 |
v-on | 给元素绑定事件 | v-on:click="doClick" |
@click="doClick" |
v-bind | 设置元素的原生属性 | v-bind:src="./logo.png" |
:src="./logo.png" |
v-for | 列表渲染 |
|
无 |
本质是
: Vue为HTML标签新增的一些属性
v-
开头 (用于区分HTML标签原生属性)
指令名=“指令值”
v-text = msg
|
---|
src" : 原生属性,设置图片的路径 |
alt : 原生属性 ,设置图片不存在时的文本 |
title :原生属性,设置鼠标悬停文本 |
v-on:click :vue给img标签新增的属性, 给元素绑定点击事件 |
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
<p v-text="msg">传智播客p>
<p v-text="msg1">传智播客p>
<p>我爱你: {{ msg }}p>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
msg1:'黑马程序员
'
}
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
<p v-text="msg">传智播客p>
<p v-text="msg1">传智播客p>
<p v-html="msg1">传智播客p>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
msg1:'黑马程序员
'
}
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
.box {
width: 100px;
height: 100px;
background-color: red;
}
style>
head>
<body>
<div id="app">
<button v-on:click="doClick">点我button>
<div class="box" v-on:mouseenter="doEnter" v-on:mouseleave="doLeave">div>
<hr>
<div class="box" @mouseenter="doEnter" @mouseleave="doLeave">div>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
},
//method:注册事件的方法名
methods: {
doClick() {
alert('我被点击了')
},
doEnter() {
console.log('鼠标移入我了')
},
doLeave() {
console.log('鼠标移出我了')
}
},
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
.father{
width: 300px;
height: 300px;
background-color: #f00;
}
.son{
width: 100px;
height: 100px;
background-color: #0f0;
}
style>
head>
<body>
<div id="app">
<div class="father" @click.once="fatherClick">
我是father
<div class="son" @click.stop="sonClick">我是sondiv>
div>
<form action="http://www.itheima.com">
<button @click.prevent="doSubmit">点我啊button>
form>
<input type="text" @keyup.enter="doEnter">
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
},
//method:注册事件的方法名
methods: {
fatherClick () {
console.log('我是父元素');
},
sonClick () {
console.log('我是子元素');
},
doSubmit () {
console.log('提交按钮');
},
doEnter(){
console.log('按了enter键')
}
},
})
script>
body>
html>
vue实例
this.属性名
平铺
到 vue实例中DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
{{ msg }} <br>
<button @click="doClick">点我啊button>
<br>
我的年龄:{{ age }}
<button @click="age++">我要成长button>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
age: 32
},
methods: {
/*
1. vue事件方法中的this指向 : vue实例
2. vue事件方法中访问data对象中的成员 : this.属性名
* vue会将data对象与methods对象中的成员 平铺到 vue实例中
3. 注意点: 如果事件处理代码没有写到methods中,而是在行内则不需要this
就可以访问data对象中的成员
*/
doClick () {
console.log(this)
//在这个事件中,如何获取data里面的成员呢?
//console.log(this.data.msg);//报错 无法获取
console.log(this.msg)// vue会将data与methos中的成员 平铺到vue实例中
this.msg = '爱你么么哒'
},
doClick1 () {
this.age++
}
},
})
script>
body>
html>
事件对象
+ 自定义参数
,则可以使用 $event
v-on:click="doClick($event,自定义参数)"
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
.box{
width: 100px;
height: 100px;
background-color: red;
}
style>
head>
<body>
<div id="app">
{{ msg }}
<div class="box" @click="boxClick(10)">div>
<br>
<span v-text="news.title">span>
<button @click="deleteClick(news.id)">删除button>
<button @click="editClick($event,news.id)">编辑button>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
news:{
title:'港独分子的下场就是牢底坐穿!',
id:10
}
},
methods: {
/*
1.vue中每一个事件方法都有一个默认参数 , 就是事件对象
2.如果主动给事件传参,则传递的参数 会 覆盖默认参数
3.如果希望 传递事件对象 + 自定义参数, 则可以使用 $event
*/
boxClick(e){
console.log(e)
},
deleteClick(id){
console.log(`id为${id}的文章被删除`);
},
editClick(e,id){
console.log(e)
console.log(id)
}
},
})
script>
body>
html>
原生属性
无法获取vue中的数据原生属性
也可以获取vue中的数据,就可以使用v-bind指令
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
<img v-bind:src="imagePath" v-bind:title="imageTitle" alt="">
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
imagePath:'./images/logo.png',
imageTitle:'黑马程序员'
}
})
script>
body>
html>
class与style样式绑定官方文档传送门:https://cn.vuejs.org/v2/guide/class-and-style.html
v-bind
可以简写成 :
v-bind:class="{ '类名': bool, '类名': bool ......}"
如果值为true 该类样式就会被应用在元素身上, false则不会
注意点:如果类名有 - ,则需要使用引号包起来
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
div>div {
width: 100px;
height: 100px;
border: 1px solid #000;
margin-top: 20px;
}
.red-box {
background-color: red;
}
.blue-box {
background-color: blue;
}
.greenBorder {
border: 10px solid green;
}
style>
head>
<body>
<div id="app">
<button @click="changeClass">切换样式button>
<div :class="{ greenBorder: true, 'blue-box': flag }">div>
<hr>
<div :style="{ width:width , height , 'background-color':bgc}">div>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
flag:true,
width:'200px',
height:'200px',
bgc:'cyan'
},
methods: {
changeClass(){
this.flag = !this.flag;
}
},
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
.input-num {
width: 180px;
height: 40px;
border: 1px solid gray;
display: flex;
border-radius: 5px;
overflow: hidden;
}
.input-num button {
width: 50px;
height: 100%;
font-size: 25px;
color: gray;
cursor: pointer;
}
.input-num span {
height: 100%;
border: 1px solid gray;
flex: 1;
text-align: center;
line-height: 40px;
}
.input-num button.disabled {
cursor: not-allowed;
color: #ccc;
}
style>
head>
<body>
<div id="app">
<div class="input-num">
<button @click="minus" >
-
button>
<span>{{ num }}span>
<button @click="add" >
+
button>
div>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
num: 0,
},
//methods: 事件处理函数
methods: {
add() {
if( this.num < 10 ){
this.num++
}
},
minus() {
if( this.num > 0 ){
this.num--
}
},
},
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
.input-num {
width: 180px;
height: 40px;
border: 1px solid gray;
display: flex;
border-radius: 5px;
overflow: hidden;
}
.input-num button {
width: 50px;
height: 100%;
font-size: 25px;
color: gray;
cursor: pointer;
}
.input-num span {
height: 100%;
border: 1px solid gray;
flex: 1;
text-align: center;
line-height: 40px;
}
.input-num button.disabled {
cursor: not-allowed;
color: #ccc;
}
style>
head>
<body>
<div id="app">
<div class="input-num">
<button @click="num--" :disabled="num==0" >
-
button>
<span>{{ num }}span>
<button @click="num++" :disabled="num==10" >
+
button>
div>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
num: 0,
}
})
script>
body>
html>
v-for="(value,index) in arr"
v-for="(value,key,index) in obj"
该语法使用较少,了解即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k9QXQERJ-1663248542620)(day01.assets/1573122070198.png)]
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
<li v-for="(item,index) in list" @click="doClick(item)">
这是第{{index}}个li元素: {{ item }}
li>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
list:[
'小明',
'小强',
'小花',
'小坤',
'小老弟'
]
},
methods: {
doClick(item){
alert(item)
}
},
})
script>
body>
html>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<!-- 导包 -->
<script src="./vue.js"></script>
<style>
.active{
background-color: pink;
}
</style>
</head>
<body>
<!-- HTML结构 -->
<div id="app">
<button v-for="(item,index) in list" :class=" { active:currentIndex == index } " @click=" currentIndex = index ">{{ item }}</button>
</div>
<script>
/* 排他思想 : 多个元素只能选中一个(多选一)
1.以前dom思维 : DOM操作
(1)使用选择器找到当前选中的元素,移除类名
(2)给自己添加类名
2.vue思维 : 数据驱动(数据+指令)
(1)给data添加一个变量currentIndex记录当前选中的下标
(2)使用v-bind指令绑定样式
*/
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
list:["前端学科","java学科","python学科","测试学科"],
currentIndex:0
},
//methods: 事件处理函数
methods: {
},
})
</script>
</body>
</html>
v-model只能用于表单元素!
v-model只能用于表单元素!
v-model只能用于表单元素!
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
span{
font-size: 20px;
color: red;
}
style>
head>
<body>
<div id="app">
<input type="text" v-model="name">
<p>我的名字是: <span>{{ name }}span>p>
<button @click="doClick">点我修改modelbutton>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
name:''
},
methods: {
doClick(){
this.name = '坤坤'
}
},
})
script>
body>
html>
快速
的得到
表单元素的值快速
的设置
表单元素的值
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
登陆框: <input type="text" v-model="username" placeholder="请输入用户名">
<br>
密码框: <input type="password" v-model="password" placeholder="请输入密码">
<br>
<button @click="loginClick">登录button>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
username:'',
password: ''
},
methods: {
loginClick(){
//修改了表单元素 -> 修改了password
if(this.password != '123456'){
alert('密码错误,请重新输入')
//修改password -> 修改了表单元素的值
this.password = ''
}
}
},
})
script>
body>
html>
arr.splice()
: 删除元素
arr.splice(2,1)
删除下标为2的元素
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
h2 {
text-align: center;
}
body {
text-align: center;
}
input {
width: 300px;
height: 30px;
border-radius: 5px;
font-size: 22px;
padding-left: 10px;
outline: none;
border: 1px solid #000;
}
.items {
list-style: none;
padding: 0;
width: 300px;
margin: 0 auto;
text-align: left;
}
table,th,td,tr {
width: 600px;
margin: 50px auto;
border: 1px solid black;
border-collapse: collapse;
padding: 5px;
transition: all 0.5s linear;
}
tr.over{
background-color: cyan;
}
style>
head>
<body>
<div id="app">
<h2>小黑记事本h2>
<input type="text" placeholder="请输入内容(双击删除)" v-model.trim="msg" @keydown.enter="add" />
<table>
<thead>
<th>索引th>
<th>内容th>
<th>操作th>
thead>
<tbody>
<tr v-for="(item,index) in list">
<td>{{ index+1 }}td>
<td>{{item}}td>
<td><button @click="delClick(index)">删除button>td>
tr>
tbody>
table>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '',
list: []
},
methods: {
add () {
//1.添加记录(修改输入框文本,msg也会变化)
this.list.push(this.msg)
//2.清空输入框内容方便下一次输入(修改msg,输入框文本也会变化)
this.msg = ''
},
delClick(index) {
//1.事件传参 获取要删除的内容下标
alert(`您要删除第${index+1}条记录`)
//2.使用数组splice方法删除指定下标元素
//第一个参数:从第几个下标开始删除 第二个参数:要删除的个数
this.list.splice(index, 1)
}
},
})
script>
body>
html>
指令名称 | 指令作用 | 示例 | 简写形式 |
---|---|---|---|
v-clock | 设置元素vue加载前的默认样式 |
|
无 |
v-once | 设置元素只能被vue渲染一次 |
|
无 |
v-pre | 让元素不被vue渲染 |
|
无 |
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
<style>
/* 属性选择器: [属性名]{ css样式 } */
[v-cloak]{
color: red;
background-color: skyblue;
}
style>
head>
<body>
<div id="app">
<p v-cloak>{{ msg }}p>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
}
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
<p>我没有使用v-once,我的名字叫:{{ msg }}p>
<button @click="doClick">点我改数据button>
<p v-once>我使用了v-once,我的名字叫:{{ msg }}p>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
},
methods: {
doClick:function(){
this.msg = '我是黑马李宗盛!'
}
},
})
script>
body>
html>
DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<script src="./vue.js">script>
head>
<body>
<div id="app">
<p>我没有使用v-pre,我的名字叫:{{ msg }}p>
<button @click="doClick">点我改数据button>
<p v-pre>我使用了v-pre,我的名字叫:{{ msg }}p>
div>
<script>
/* 创建vue实例 */
let app = new Vue({
//el:挂载点
el: '#app',
//data: 要渲染的数据
data: {
msg: '我是坤坤!',
},
methods: {
doClick:function(){
this.msg = '我是黑马李宗盛!'
}
},
})
script>
body>
html>