Vue基础语法
基础指令
v-html
将html内容嵌入到==当前标签里==
<!-- 显示数据 -->
<div id="app" v-html="url">
</div>
<script>
var app = new Vue({
el: "#app",
data: {
message: '<a href=" **">链接</a>'
}
})
</script>
呈现效果
<!-- 显示数据 -->
<div id="app">
<a href=" **">连接</a>
</div>
v-once(不常用)
数据初次渲染之后改变数据,前端不改变
v-text
会覆盖当前标签下的文本,没有==mustache==灵活
v-pre
将mustache原样显示,不进行数据解析
v-cloak(不常用)
在vue解析之前,div中有一个属性v-cloak,解析之后没有 ,用于在解析前不显示{{message}}
<style>
[v-cloak] {
display:none
}
</style>
<div id="#app" v-cloak>
{{message}}
</div>
<script>
var app = new Vue({
el: "#app",
data: {
message: 'Hello'
}
})
</script>
计算属性
如果要对属性进行变化之后再显示,可以使用计算属性
<!-- 被vm 实例所控制的区域 -->
<div id="app">
<h2>{{fullName}}</h2>
</div>
<script>
// 创建实例对象
const vm = new Vue({
// 指定控制的区域
el: '#app',
data: {
firstName: 'Lebron',
lastName: 'James'
},
computed: {
fullName() {
return this.firstName + ' ' + this.lastName
}
}
});
</script>
setter与getter
setter一般不使用
<div id="app">
<h2>{{fullName}}</h2>
</div>
<script>
// 创建实例对象
const vm = new Vue({
// 指定控制的区域
el: '#app',
data: {
firstName: 'Lebron',
lastName: 'James'
},
computed: {
fullName: {
set: function(newValue) {
const names=newValue.split(' ');
this.firstName=names[0];
this.lastName=names[1];
},
get: function() {
return this.firstName + ' ' + this.lastName
}
}
},
methods: {}
});
</script>
</body>
</html>
methods与computed的区别
methods没有缓存,使用几次调用基础
computed有缓存,只在第一次调用及更改时调用
js高阶函数
filter
必须返回一个bollean值,当返回true时,会加内容加入新数组,反之过滤掉
const nums=[10,20,30,40,50];
let num=nums.filter(n=>n>20)
console.log(num)
map
将返回的值作为新的值
let num2=num.map(n=>n*2)
console.log(num2);
reduce
对数组中所有的内容进行汇总
组件
组件使用的三个步骤
1 创建组件构造器——Vue.extend()方法
2 注册组件——Vue.component()
3 使用组件——在Vue实例中使用
组件使用实例
<!-- 被vm 实例所控制的区域 -->
<div id="app">
//使用组件
<my-con></my-con>
</div>
<script>
//创建组件
const cpnContructor=Vue.extend({
template: `
<div>
<h2>我是标题</h2>
<p>内容1</p>
<p>内容2</p>
</div>`
});
//注册组件(全局)
Vue.component('my-con',cpnContructor);