VUE
first_vue
- 键入英文格式下的!并回车,自动生成格式
<!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>Document</title>
</head>
<body>
</body>
</html>
- 连接vue的两种方式
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js">
官网直接复制
<Script src="vue.js"></Script>
在官网下载后拖入文件夹再进行连接
- 输出hello
<!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>Document</title>
<Script src="vue.js"></Script>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> -->
</head>
<body>
<div id="app">
<!-- 采用双大括号进行数据绑定,双大括号中的内容会被替换为对应数据对象上的值 -->
{{ message }}
</div>
</body>
<script>
// 创建一个vue实例
var app = new Vue({
el: '#app', /* 数据将会被传输到id为app的div中 数据绑定 element*/
data: { /* 进行数据插入 */
message: 'Hello Vue!.js!!!' /* 将数据插入到message中 */
}
})
</script>
</html>
case2_生命周期
<!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>Document</title>
<Script src="vue.js"></Script>
</head>
<body>
<div id="app">
{{ message }}
</div>
</body>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!.js!!111!'
},
beforeCreate() {
console.log("beforeCreate.......")
},
created() {
console.log("created............")
},
beforeMounted() {
console.log("beforeMounted...............")
},
mounted() {
console.log(" mounted..............")
},
beforeUpdate() {
console.log("beforeUpdat..............")
},
update() {
console.log("update...................")
},
})
</script>
</html>
vue的生命周期,运行程序控制台中会输出日志内容
case3-模板语法-插值
- Mustache语法,即{{}}语法
<div id="app">
<p>常量:{{a}}</p>
<p>运算符:{{a + b}}</p>
<p>简单表达式:{{ a==1 ? '男': '女'}}</p>
</div>
<script>
new Vue({
el:'#app',
data:{
a:1,
b:2
}
})
</script>
Mustache 标签将会被替代为对应数据对象上 msg
property 的值。无论何时,绑定的数据对象上 msg
property 发生了改变,插值处的内容都会更新。
<span>Message: {{ msg }}</span>
msg将会被代替。
通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。
<span v-once>这个将不会改变: {{ msg }}</span>
2.如何使用HTML语言
双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html
指令:
<!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>Document</title>
<Script src="vue.js"></Script>
</head>
<body>
<div id="app">
{{ message }}
<br>
{{max}}
<br>
<span v-once>{{ message }}</span>
<!-- v-once 该标签仅使用一次,值不会改变 -->
<hr>
<p>Using mustaches: {{ rawHtml }}</p><!-- 将{{}}中内容给识别为文本 -->
<p>Using v-html directive: <span v-html="rawHtml"></span></p><!-- 使用v-html指令 -->
<span style="color: green;">This should be red</span>
<hr>
{{ number + 1 }}
<br>
{{ ok ? 'YES' : 'NO' }}
<br>
{{ message.split('').reverse().join('') }}
<div v-bind:id="'list-' + id"></div>
</div>
</body>
<script>
var app = new Vue({
el: '#app',
data: {
max: 123456,
message: 'Hello Vue!.js!!!',
rawHtml: ' <span style="color: red;">This should be red</span>',
number: 2021,
ok: '1'
}
})
</script>
</html>
case4-模板语法-指令
指令
指令 (Directives) 是带有 v-
前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式 (v-for
是例外情况,稍后我们再讨论)。指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM。
<p v-if="seen">现在你看到我了</p>
这里,v-if
指令将根据表达式 seen
的值的真假来插入/移除 <p>
元素。
参数
- 一些指令能够接收一个“参数”,在指令名称之后以冒号表示。例如,
v-bind
指令可以用于响应式地更新 HTML attribute:
<a v-bind:href="url">...</a>
在这里 href
是参数,告知 v-bind
指令将该元素的 href
attribute 与表达式 url
的值绑定。
- 另一个例子是
v-on
指令,它用于监听 DOM 事件:
<a v-on:click="doSomething">...</a>
在这里参数是监听的事件名。我们也会更详细地讨论事件处理。
缩写
v-
前缀作为一种视觉提示,用来识别模板中 Vue 特定的 attribute。当你在使用 Vue.js 为现有标签添加动态行为 (dynamic behavior) 时,v-
前缀很有帮助,然而,对于一些频繁用到的指令来说,就会感到使用繁琐。同时,在构建由 Vue 管理所有模板的单页面应用程序 (SPA - single page application) 时,v-
前缀也变得没那么重要了。因此,Vue 为 v-bind
和 v-on
这两个最常用的指令,提供了特定简写:
v-bind缩写
<!-- 完整语法 -->
<a v-bind:href="url">...</a>
<!-- 缩写 -->
<a :href="url">...</a>
<!-- 动态参数的缩写 (2.6.0+) -->
<a :[key]="url"> ... </a>
v-on缩写
<!-- 完整语法 -->
<a v-on:click="doSomething">...</a>
<!-- 缩写 -->
<a @click="doSomething">...</a>
<!-- 动态参数的缩写 (2.6.0+) -->
<a @[event]="doSomething"> ... </a>
实例
<!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>Document</title>
<Script src="vue.js"></Script>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> -->
</head>
<body>
<div id="app">
<p v-if="seen">现在看到我了</p>
<br>
<a v-bind:href="url">宁夏大学</a>
<br>
<div @click="showMsg2">
<a v-on:click="showMsg">点击我</a>
</div>
</div>
</body>
<script>
var app = new Vue({
el: '#app',
data: {
seen: false,
url: 'https://www.nxu.edu.cn/',
},
// 单击按钮弹出对话框事件
// function(){
// alert();
// }
methods: {
showMsg: function () {
alert("Hello");
console.log("showMsg")
},
showMsg2: function () {
console.log("showMsg2")
}
}
})
</script>
</html>
case4-计算属性-侦听器
对于任何复杂逻辑,你都应当使用计算属性。