vue的安装及语法
- v-model
- v-show
main.js
var app = new Vue({
el: '#app',
data:{
name: '奔奔',
age:22,
gender:null,
}
});
index.html
<body>
<div id="app">
<div>
<input type="text" v-model="name">
<span v-show="name">姓名:{{name}}</span>
</div>
<div>
<input type="text" v-model="age">
<span v-show="age">年龄:{{age}}</span>
</div>
<div>
<input type="text" v-model="gender">
<span v-show="gender">性别:{{gender}}</span>
</div>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
v-for指令
main.js
var app = new Vue({
el: '#app',
data:{
// foodList:['葱', '姜', '蒜']
foodList:[
{
name: '葱',
price: 10,
discount: .9,
},{
name: '姜',
price: 5,
discount: .6,
},{
name: '蒜',
price: 20,
},
]
}
});
index.html
<body>
<div id="app">
<li v-for="food in foodList ">{{food.name}}:${{food.discount? food.price * food.discount : food.price}}</li>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
chrome.console
app.foodList.push({name: '辣椒', price:30, discount: .5})
v-bind
main.js
var app = new Vue({
el: '#app',
data:{
url: 'http://www.baidu.com',
isActive: true,
}
});
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>18.1</title>
<style>
.active{
background: #aa1100;
}
</style>
</head>
<body>
<div id="app">
<a :class="{active: isActive}" :href="url">
点我
</a>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>
chrome.console
app.isActive = false
v-on
main.js
var app = new Vue({
el: '#app',
data:{
},
methods:{
onClick : function () {
console.log('cliked');
},
onMouse : function () {
console.log('on enter')
},
onOut : function () {
console.log('on out')
},
onSubmit : function () {
console.log('submit')
},
onKeyup : function () {
console.log('keyup')
},
onEnter : function () {
console.log('enter')
}
}
});
index.html
<body>
<div id="app">
<button v-on="{mouseenter: onMouse, mouseout: onOut}" @click="onClick">点我</button>
<form action="" @keyup.enter="onEnter" @submit.prevent="onSubmit">
<input type="text">
<button type="submit">提交</button>
</form>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
v-model
- v-model.lazy
光标消失才会显示所输 - v-model.trim
去除左右两边空格 - v-model.number
转化为数字
main.js
var app = new Vue({
el: '#app',
data:{
name1: 'null111',
name2: 'null222',
name3: 'null333',
},
});
index.html
<body>
<div id="app">
<input type="text" v-model.lazy="name1"><br>{{name1}}
<br>
<input type="text" v-model.trim="name2">
<pre>{{name2}}</pre>
<input type="text" v-model.number="name3">
<pre>{{name3}}</pre>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
v-model其他元素及类型
main.js
var app = new Vue({
el: '#app',
data:{
gender: 'male',
gender1:['male'],
text: 'a b c d e f g h i j k l m n o p q r s t u v w x y z',
city: 2,
},
});
index.html
<body>
<div id="app">
<label for=""><input v-model:name="gender" type="radio" value="male">男</label>
<label for=""><input v-model:name="gender" type="radio" value="female">女</label>
{{gender}}
<br>
<label for=""><input v-model:name="gender1" type="checkbox" value="male">男</label>
<label for=""><input v-model:name="gender1" type="checkbox" value="female">女</label>
{{gender1}}
<br>
<textarea v-model.lazy="text" id="" cols="30" rows="10"></textarea>{{text}}
<br>
<select v-model="city" id="">
<option value="1">长沙</option>
<option value="2">成都</option>
<option value="3">北京</option>
<option value="4">上海</option>
<option value="5">西安</option>
</select>
{{city}}
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
v-if控制流指令
main.js
var app = new Vue({
el: '#app',
data:{
role: 'super_admin'
},
});
index.html
<body>
<div id="app">
<div v-if="role == 'admin' || role == 'super_admin'">
admin
</div>
<div v-else-if="role == 'hr'">
hr
</div>
<div v-else=>
user
</div>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
计算属性
- parseFloat
- v-model.number
- computed
- Math.round()
main.js
var app = new Vue({
el: '#app',
data:{
math: 90,
physics: 70,
english: 40,
},
computed: {
sum: function () {
return parseFloat(this.math) + parseFloat(this.physics) + parseFloat(this.english);
},
average: function () {
return Math.round(this.sum/3);
}
}
});
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>18.1</title>
</head>
<body>
<div id="app">
<table border="1">
<thead>
<th>学科</th>
<th>分数</th>
</thead>
<tbody>
<tr>
<td>数学</td>
<td><input type="text" v-model.number="math"></td>
</tr>
<tr>
<td>物理</td>
<td><input type="text" v-model.number="physics"></td>
</tr>
<tr>
<td>英语</td>
<td><input type="text" v-model.number="english"></td>
</tr>
<tr>
<td>总分</td>
<td>{{sum}}</td>
</tr>
<tr>
<td>平均分</td>
<td>{{average}}</td>
</tr>
</tbody>
</table>
</div>
<script src="../lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>
全局及局部组件
mian.js
// Vue.component('alert', {
// template:'<button @click="OnClick">弹弹弹</button>',
// methods: {
// OnClick: function(){
// alert("Yo.");
// }
// }
// })
var alert_component = {
template:'<button @click="OnClick">弹弹弹</button>',
methods: {
OnClick: function(){
alert("Yo.");
}
}
}
new Vue({
el: '#seg1',
components: {
'alert': alert_component,
}
})
new Vue({
el: '#seg2',
})
index.html
<!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>Document</title>
</head>
<body>
<div id="seg1">
<alert></alert>
</div>
<div id="seg2">
<alert></alert>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>
配置组件
main.js
Vue.component('like', {
template: '#like-component-tpl',
data: function(){
return{
likeCount: 10,
liked: false,
}
},
methods: {
toggleLike: function(){
if(!this.liked)
this.likeCount++;
else
this.likeCount--;
this.liked = !this.liked;
}
}
})
new Vue({
el: '#app',
})
index.html
<!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>Document</title>
<style>
.liked{
color: gold;
}
</style>
</head>
<body>
<div id="app">
<like></like>
</div>
<template id="like-component-tpl">
<button :class="{liked: liked}" @click="toggleLike">
赞 {{likeCount}}
</button>
</template>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>
组件通信之父子通信
- props
main.js
Vue.component('user', {
template: '<a :href="\'/user/\' + username">{{username}}</a>',
props: ['username'],
methods: {}
})
new Vue({
el: '#app',
})
index.html
<body>
<div id="app">
<user username='zxc'>
</user>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
组件通信之子父通信
main.js
Vue.component('balance',{
template:
`
<div>
<show @show_balance="show_balance"></show>
<div v-if="show">您的余额为98元</div>
</div>
`,
data: function(){
return{
show: false,
}
},
methods: {
show_balance: function(data){
this.show =true;
console.log('data:', data);
}
}
});
Vue.component('show', {
template: '<button @click="onClick">显示余额</button>',
methods: {
onClick: function(){
this.$emit('show_balance', {a:1, b:2});
}
}
});
new Vue({
el: '#app',
})
index.html
<body>
<div id="app">
<balance></balance>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
组件通信之任意组件通信
main.js
var Event = new Vue();
Vue.component('huahua',{
template:`
<div>
我说:<input @keyup="on_change" v-model="i_said"/>
</div>`,
data: function(){
return {
i_said: '',
}
},
methods: {
on_change: function(){
Event.$emit('huahua-said-something', this.i_said);
}
}
});
Vue.component('quandan', {
template: `<div>花花说了:{{huahua_said}}</div>`,
data: function(){
return {
huahua_said: '',
};
},
mounted: function(){
var me = this;
Event.$on('huahua-said-something', function(data){
me.huahua_said = data;
});
}
});
new Vue({
el: '#app',
})
index.html
<body>
<div id="app">
<huahua></huahua>
<quandan></quandan>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
过滤器
- (val / 1000).toFixed(2)
保留小数点后2位
main.js
Vue.filter('currency', function(val, unit) {
val = val || 0;
unit = unit || '元';
return val + unit;
});
Vue.filter('meter', function(val, unit){
val = val || 0;
unit = unit || 'm';
return (val / 1000).toFixed(2) + unit;
});
new Vue({
el: '#app',
data: {
price: 10,
length: 11,
}
})
index.html
<body>
<div id="app">
<input v-model="length">mm
<br>
{{length | meter}}
<hr>
<input v-model="price">
{{price | currency('USD')}}
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
自定义指令的基本用法
- Vue.directive('xx',function(){});
- el.style.position = 'fixed'
生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 left
, top
, right
以及 bottom
属性进行规定。
- el.style.position = "static"
默认值。没有定位,元素出现在正常的流中(忽略top
,bottom
,left
,right
或者z-index
声明)。 - binding.value
main.js
Vue.directive('pin', function(el, binding){
var pinnded = binding.value;
if(pinnded){
el.style.position = 'fixed';
el.style.top = '10px';
el.style.left = '10px';
}else
el.style.position = "static"
});
new Vue({
el: '#app',
data: {
card1: {
pinned:false,
},
card2: {
pinned: false,
},
}
})
index.html
<!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>Document</title>
<style>
.card{
width: 200px;
background: #cccccc;
padding: 10px;
margin: 5px;
}
</style>
</head>
<body>
<div id="app">
<div v-pin="card1.pinned" class="card">
<button @click="card1.pinned = !card1.pinned">pin it</button>
有没有那么一刻,你感觉人生格局已定?
你感觉再往上走,越来越难了?
你曾经雄心壮志,但现在每个月还房贷,都拼尽全力。
你苦苦思索,自己到底是怎样输掉了人生。
</div>
<div v-pin="card2.pinned" class="card">
<a href="#" @click="card2.pinned = !card2.pinned">pinned it</a>
李嘉诚的几篇演讲,刷爆网络,它也是这个问题的最佳答案。
从15岁在一家钟表公司当小学徒,到44岁创办的长江实业上市,再到成为香港首富资产千亿,李嘉诚花了73年。
我梳理了李嘉诚的演讲稿,然后发现,那些决胜千里的人,都有这5种特质。
请问你有没有在其中?
</div>
<div>优秀的人,都极其懂得自我管理。自律的人有多可怕?他会昼度夜思、殚精竭虑、不知疲倦。14岁的时候,李嘉诚就知道要赚取足够一家的生活费。一方面他紧守角色,尽管是小工,也坚持把每件交托的事情做得妥当出色;另一方面他绝不浪费时间,把剩下来的一分一毫都拿来买旧书籍。20岁起,他就要求自己大量阅读大公司年报。60多年来,他每天工作12小时,晚饭后看20分钟英文电视,并跟着大声说;睡前一定要看书;早餐必须在5:59分起床。甚至,李嘉诚还把这种静态管理延伸至动态管理上。22岁成立公司后,李嘉诚就深刻明白,要想取得成功,知识要和意志结合。他建立了各种随机应变的制度,避免聪明的组织干愚蠢的事。这个时代,决定一个人优秀与否,早已不仅仅是勤奋程度,还有你对自我的管理。网上有篇文章说,为什么一流成功人士的闹钟,都定在早晨5:57?因为他们虽然每天只早起了一个小时,但日积月累,事实上,他每天都比别人多“活”了一个小时。如果你是这样的人,你的生命会被拉长,自然能活得更精彩。平庸是条死胡同如今的李嘉诚,已经90岁。可能有人觉得,他这把年纪,时间已经不再没有方向。但尽管已经高龄,他依然坚持做一件事:每天6点起床,坚持打1个半小时左右的高尔夫球。可能有人会说,都一把年纪了干嘛折腾自己。可不折腾的人生,有多平庸、乏味。在最近一次演讲上,90岁的李嘉诚还坦言很多时候感到沮丧无力。为了每一个明天,他仍然在不断思考,不断感受,不断行动。为了脱离平庸,读书的时候天一亮他就起来学英语,这种狂热使得他晚年还坚持每天晚上看英文电视,温习英语;为了变得优秀,打工时他每天工作16个小时,期间还去夜校深造,后来他从一个塑料厂推销员晋升为公司总经理;长江创建初期,因为无视质量控制,工厂处于破产边缘,他召集员工开会并向他们承认自己的商业错误,并承诺工厂度过非常时期后,欢迎被解雇的工人回来工作。当一个人立志改变世界的时候,他会使出浑身力气去打破所有艰难险阻。而努力,没有长度。李嘉诚说道:我一直深信,如果世界上有任何“成功秘方”,其中最关键的元素必定是你对成功的欲望远远大于对失败的恐惧。坚持学习,哪怕你90岁为什么李嘉诚能够将长江从一个小厂做成业务遍及全球52个国家、拥有27万员工的大集团,并且68年屹立不倒?因为他严于律己,一个人无论做什么行业,在一个行业内就要尽量做到最好,这才是最重要的。李嘉诚年轻的时候,常常喜欢翻阅上市公司的年度报告书,看上去很沉闷,但日积月累他明白了会计处理的方法的优点与利弊,方向的选择和公司资源的分布对他有着很大的启示。他常常追求最新的知识,最新的商业动态、知识动态,这也使得他能够站在更高更远的地方来看现在的格局,从而做出最睿智的判断与选择。在创业初期,李嘉诚就已开始投资一些华尔街上市公司的股票。每次买入一个公司之前,他都会仔细研读他们的财报,研究他们的商业规则。华尔街上市公司的财报因此成为他的英文老师、商业教练,也是他的私人投资获利来源。李嘉诚还没退休的时候,他每周都会亲自教导孙子。上课都是自己准备课程、案例,既涉及经济,又有道德讨论、文化批评。就连现在的李嘉诚,仍在学习。我所见到月薪低于5000的人,无一不是工作后不学习的人。他们最喜欢的活动,是在家里看芒果台的综艺节目,是葛优瘫。他们听过许多道理,却从来没有意识到:学习,也应当是终身的自选动作。今天,不管你是打工,还是处于管理阶层,都要让自己得到最好、最新的知识。这样你才有交谈的资本。曾经,李嘉诚见了一个银行主席,结果发现这个人没有真材实料,讲的东西都是假大空,后来他跟秘书说以后那个人再来都不会再见他了。如果一个没有真才实料的CEO,整天都在外面跑,连自己的事情都没有做好的话,这是最危险的。由此可见,只有学习,能为你的人生加冕。时常保持危机感保持危机感的人,常常比一般的人更能对抗一切不确定因素。对大多数年轻人来说,一方面要供还房贷、结婚生子,一方面还要赡养父母。很多人会随波逐流,生活慢慢磨平,甚至人到中年,有些还在国企做着流水线的工作。这些年,“中年危机”话题常常被人提起。因为没有核心竞争力,老员工面临被裁员的危机。2017年初,华为宣布辞退34岁以上的交付工程维护人员;2017年12月,中兴42岁员工跳楼自杀,当场死亡。任正非说了一句让人深思的话:“华为是没有钱的,大家不奋斗就跨了,不可能为不奋斗者支付什么。30多岁年轻力壮,不努力,光想躺在床上数钱,可能吗?”保持危机感,能让你清楚自己的位置,悄然应对即将发生的变化。事情。他总是时刻在内心创造公司的逆境,不停地给自己提问,然后想出解决问题的方式。“等到危机来的时候,他就已经做好了准备”。李嘉诚说道:我凡事必有充分的准备才去做。例如天文台说天气很好,但我常常问我自己,如5分钟后宣布有台风,我会怎样,在香港做生意,亦要保持这种心理准备。2008年,金融危机爆发。而在这之前,李嘉诚早就预见并做好了准备。等到危机来临时,集团不但安然无恙,还从中获得了扩张的机会。有的人25岁,却过着52岁的人生;有的人52岁,却活成了25岁。拥有危机感,你很可能脱颖而出。相反,你还未起跑,就可能被抛下。差不多的人生,其实差很多在汕头大学演讲中,李嘉诚曾对学生说,不要成为差不多先生。但我们,却常常在犯这样的毛病。你总是觉得差不多就好。微胖的体型,差不多;月薪六千,差不多;每天朝九晚五,差不多;25岁结婚,27岁生小孩,差不多。你总是习惯给自己设限,从不做那些有难度的事,你觉得岁月静好。然而,你不知道,自己慢慢成为了温水里的青蛙。等有一天,你突然发现熟悉的人越来越优秀,你再也追赶不上了.李嘉诚,为什么从一个小学徒,走到今天?最大的一个原因,就是他有野心,从不接受差不多的人生。蔡康永说,15岁觉得游泳难,放弃游泳,到18岁遇到一个你喜欢的人约你去游泳,你只好说“我不会耶”。18岁觉得英文难,放弃英文,28岁出现一个很棒但要会英文的工作,你只好说“我不会耶”。从不挑战潜能,结局其实已定:只能变得平庸,接受低成就。反之,你终能与众不同。
</div>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>
自定义指定配置传参及修饰符
- var position = binding.modifiers;
- var warning = binding.arg;
main.js
Vue.directive('pin', function(el, binding){
var pinnded = binding.value;
var position = binding.modifiers;
var warning = binding.arg;
if(pinnded){
el.style.position = 'fixed';
for(var key in position){
if(position[key])
el.style[key] = '10px';
}
if(warning == 'true')
el.style.background = 'yellow';
}else{
el.style.position = "static";
el.style.background = '#cccccc';
}
});
new Vue({
el: '#app',
data: {
card1: {
pinned:false,
},
card2: {
pinned: false,
},
}
})
index.html
<!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>Document</title>
<style>
.card{
width: 200px;
background: #cccccc;
padding: 10px;
margin: 5px;
}
</style>
</head>
<body>
<div id="app">
<div v-pin:true.bottom.right="card1.pinned" class="card">
<button @click="card1.pinned = !card1.pinned">pin it</button>
有没有那么一刻,你感觉人生格局已定?
你感觉再往上走,越来越难了?
你曾经雄心壮志,但现在每个月还房贷,都拼尽全力。
你苦苦思索,自己到底是怎样输掉了人生。
</div>
<div v-pin="card2.pinned" class="card">
<a href="#" @click="card2.pinned = !card2.pinned">pinned it</a>
李嘉诚的几篇演讲,刷爆网络,它也是这个问题的最佳答案。
从15岁在一家钟表公司当小学徒,到44岁创办的长江实业上市,再到成为香港首富资产千亿,李嘉诚花了73年。
我梳理了李嘉诚的演讲稿,然后发现,那些决胜千里的人,都有这5种特质。
请问你有没有在其中?
</div>
<div>优秀的人,都极其懂得自我管理。自律的人有多可怕?他会昼度夜思、殚精竭虑、不知疲倦。14岁的时候,李嘉诚就知道要赚取足够一家的生活费。一方面他紧守角色,尽管是小工,也坚持把每件交托的事情做得妥当出色;另一方面他绝不浪费时间,把剩下来的一分一毫都拿来买旧书籍。20岁起,他就要求自己大量阅读大公司年报。60多年来,他每天工作12小时,晚饭后看20分钟英文电视,并跟着大声说;睡前一定要看书;早餐必须在5:59分起床。甚至,李嘉诚还把这种静态管理延伸至动态管理上。22岁成立公司后,李嘉诚就深刻明白,要想取得成功,知识要和意志结合。他建立了各种随机应变的制度,避免聪明的组织干愚蠢的事。这个时代,决定一个人优秀与否,早已不仅仅是勤奋程度,还有你对自我的管理。网上有篇文章说,为什么一流成功人士的闹钟,都定在早晨5:57?因为他们虽然每天只早起了一个小时,但日积月累,事实上,他每天都比别人多“活”了一个小时。如果你是这样的人,你的生命会被拉长,自然能活得更精彩。平庸是条死胡同如今的李嘉诚,已经90岁。可能有人觉得,他这把年纪,时间已经不再没有方向。但尽管已经高龄,他依然坚持做一件事:每天6点起床,坚持打1个半小时左右的高尔夫球。可能有人会说,都一把年纪了干嘛折腾自己。可不折腾的人生,有多平庸、乏味。在最近一次演讲上,90岁的李嘉诚还坦言很多时候感到沮丧无力。为了每一个明天,他仍然在不断思考,不断感受,不断行动。为了脱离平庸,读书的时候天一亮他就起来学英语,这种狂热使得他晚年还坚持每天晚上看英文电视,温习英语;为了变得优秀,打工时他每天工作16个小时,期间还去夜校深造,后来他从一个塑料厂推销员晋升为公司总经理;长江创建初期,因为无视质量控制,工厂处于破产边缘,他召集员工开会并向他们承认自己的商业错误,并承诺工厂度过非常时期后,欢迎被解雇的工人回来工作。当一个人立志改变世界的时候,他会使出浑身力气去打破所有艰难险阻。而努力,没有长度。李嘉诚说道:我一直深信,如果世界上有任何“成功秘方”,其中最关键的元素必定是你对成功的欲望远远大于对失败的恐惧。坚持学习,哪怕你90岁为什么李嘉诚能够将长江从一个小厂做成业务遍及全球52个国家、拥有27万员工的大集团,并且68年屹立不倒?因为他严于律己,一个人无论做什么行业,在一个行业内就要尽量做到最好,这才是最重要的。李嘉诚年轻的时候,常常喜欢翻阅上市公司的年度报告书,看上去很沉闷,但日积月累他明白了会计处理的方法的优点与利弊,方向的选择和公司资源的分布对他有着很大的启示。他常常追求最新的知识,最新的商业动态、知识动态,这也使得他能够站在更高更远的地方来看现在的格局,从而做出最睿智的判断与选择。在创业初期,李嘉诚就已开始投资一些华尔街上市公司的股票。每次买入一个公司之前,他都会仔细研读他们的财报,研究他们的商业规则。华尔街上市公司的财报因此成为他的英文老师、商业教练,也是他的私人投资获利来源。李嘉诚还没退休的时候,他每周都会亲自教导孙子。上课都是自己准备课程、案例,既涉及经济,又有道德讨论、文化批评。就连现在的李嘉诚,仍在学习。我所见到月薪低于5000的人,无一不是工作后不学习的人。他们最喜欢的活动,是在家里看芒果台的综艺节目,是葛优瘫。他们听过许多道理,却从来没有意识到:学习,也应当是终身的自选动作。今天,不管你是打工,还是处于管理阶层,都要让自己得到最好、最新的知识。这样你才有交谈的资本。曾经,李嘉诚见了一个银行主席,结果发现这个人没有真材实料,讲的东西都是假大空,后来他跟秘书说以后那个人再来都不会再见他了。如果一个没有真才实料的CEO,整天都在外面跑,连自己的事情都没有做好的话,这是最危险的。由此可见,只有学习,能为你的人生加冕。时常保持危机感保持危机感的人,常常比一般的人更能对抗一切不确定因素。对大多数年轻人来说,一方面要供还房贷、结婚生子,一方面还要赡养父母。很多人会随波逐流,生活慢慢磨平,甚至人到中年,有些还在国企做着流水线的工作。这些年,“中年危机”话题常常被人提起。因为没有核心竞争力,老员工面临被裁员的危机。2017年初,华为宣布辞退34岁以上的交付工程维护人员;2017年12月,中兴42岁员工跳楼自杀,当场死亡。任正非说了一句让人深思的话:“华为是没有钱的,大家不奋斗就跨了,不可能为不奋斗者支付什么。30多岁年轻力壮,不努力,光想躺在床上数钱,可能吗?”保持危机感,能让你清楚自己的位置,悄然应对即将发生的变化。事情。他总是时刻在内心创造公司的逆境,不停地给自己提问,然后想出解决问题的方式。“等到危机来的时候,他就已经做好了准备”。李嘉诚说道:我凡事必有充分的准备才去做。例如天文台说天气很好,但我常常问我自己,如5分钟后宣布有台风,我会怎样,在香港做生意,亦要保持这种心理准备。2008年,金融危机爆发。而在这之前,李嘉诚早就预见并做好了准备。等到危机来临时,集团不但安然无恙,还从中获得了扩张的机会。有的人25岁,却过着52岁的人生;有的人52岁,却活成了25岁。拥有危机感,你很可能脱颖而出。相反,你还未起跑,就可能被抛下。差不多的人生,其实差很多在汕头大学演讲中,李嘉诚曾对学生说,不要成为差不多先生。但我们,却常常在犯这样的毛病。你总是觉得差不多就好。微胖的体型,差不多;月薪六千,差不多;每天朝九晚五,差不多;25岁结婚,27岁生小孩,差不多。你总是习惯给自己设限,从不做那些有难度的事,你觉得岁月静好。然而,你不知道,自己慢慢成为了温水里的青蛙。等有一天,你突然发现熟悉的人越来越优秀,你再也追赶不上了.李嘉诚,为什么从一个小学徒,走到今天?最大的一个原因,就是他有野心,从不接受差不多的人生。蔡康永说,15岁觉得游泳难,放弃游泳,到18岁遇到一个你喜欢的人约你去游泳,你只好说“我不会耶”。18岁觉得英文难,放弃英文,28岁出现一个很棒但要会英文的工作,你只好说“我不会耶”。从不挑战潜能,结局其实已定:只能变得平庸,接受低成就。反之,你终能与众不同。
</div>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>
mixins混合
- mixins: [base]
main.js
var base = {
data: function(){
return {
visible: false,
}
},
methods: {
show: function(){
this.visible = true;
},
hide: function(){
this.visible = false;
},
toggle: function(){
this.visible = ! this.visible;
}
}
}
Vue.component('tooltip',{
template: `
<div>
<span @mouseenter="show" @mouseout="hide">bys</span>
<div v-if="visible">
白岩松
</div>
</div>
`,
data: function(){
return {
visible: true,
}
},
mixins: [base]
});
Vue.component('popup',{
template: `
<div>
<button @click="toggle">Popup</button>
<div v-if="visible">
有没有那么一刻,你感觉人生格局已定? 你感觉再往上走,越来越难了? 你曾经雄心壮志,但现在每个月还房贷,都拼尽全力。 你苦苦思索,自己到底是怎样输掉了人生。
</div>
</div>
`,
mixins: [base]
});
new Vue({
el: '#app',
data: {
}
})
index.html
<body>
<div id="app">
<tooltip></tooltip>
<popup></popup>
</div>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
slots插槽
- .pannel > *
main.js
Vue.component('pannel',{
template: '#pannel-tpl',
});
new Vue({
el: '#app',
data: {
}
})
index.html
<!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>Document</title>
<style>
.pannel {
max-width: 300px;
border: 1px solid #999;
margin-bottom: 15px;
}
.pannel > * {
padding: 15px;
}
.pannel .title{
border-bottom: 1px solid #999;
}
.pannel .footer{
border-top: 1px solid #999;
}
</style>
</head>
<body>
<div id="app">
<pannel>
<div slot="title">李嘉诚说</div>
<div slot="content">
有没有那么一刻,你感觉人生格局已定?
你感觉再往上走,越来越难了?
你曾经雄心壮志,但现在每个月还房贷,都拼尽全力。
你苦苦思索,自己到底是怎样输掉了人生。
</div>
</pannel>
<pannel></pannel>
<pannel></pannel>
</div>
<template id='pannel-tpl'>
<div class="pannel">
<div class="title">
<slot name="title">Yo.1</slot>
</div>
<div class="content">
<slot name="content">Yo.2</slot>
</div>
<div class="footer">
<slot name="footer">更多详情...</slot>
</div>
</div>
</template>
<script src="lib/vue.js"></script>
<script src="js/main.js"></script>
</body>
</html>