1.首先要创建div跟标签
<div id="app">
{{ m }}
</div>
实例:var vue = new Vue({
el:‘#app‘,//div的id前面要加#;
data:{
m:‘hello‘ //这里存放数据;
}
})
2.基本指令
1)v-if
<div id="app">
<p v-if="m">qdwdwqdwd </p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script type="text/javascript">
var vue = new Vue({
el: ‘#app‘,
data: {
m:true
}
})
2)v-for
<div id="app-4">
<ol>
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ol>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script type="text/javascript">
var app4 = new Vue({
el: ‘#app-4‘,
data: {
todos: [
{ text: ‘学习 JavaScript‘ },
{ text: ‘学习 Vue‘ },
{ text: ‘整个牛项目‘ }
]
}
})
3)v-model
<div id="app">
<p>{{ m }}</p>
<input v-model="m">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script type="text/javascript">
var vm = new Vue({
el:"#app",
data:{
m:"wqdwd",
}
})
4)v-bind
 v-bind就是用于绑定数据和元素属性的
var app = new Vue({
    el:‘.app‘,
    data:{
        url:"https://www.baidu.com",
    }
});
<div class="app">
    <a v-bind:href="url">click me</a>
</div>  
注意:
v-bind后面是:属性名=,我的理解是表示绑定这个属性,绑定之后,对应的值要去vue的数据里面找。
当我们在控制台改变url时,对应也会变化。
相同的,我们还可以绑定图片src属性、超链接的class
var app = new Vue({
    el:‘.app‘,
    data:{
        url:"https://www.baidu.com",
        imgsrc:"https://cn.vuejs.org/images/logo.png",
        class:"btn btn-default"
    }
});
<div class="app">
    <a v-bind:href="url" v-bind:class="klass">click me</a>
    <img v-bind:src="imgsrc">
</div>  
另外一种够可以传入一个对象,如下
对象的名active,表示要添加的类名,isActive是vue中的数据,表示在什么情况下添加该类名,对应为真才添加。
<div class="app">
    <a v-bind:class="{active:isActive}">click me</a>
</div>  
通常我们可以将v-bind:简写成:
<div class="app">
    <a :class="{active:isActive}">click me</a>
</div>  
 
3.自定义指令
div id="app">
<h1>{{msg}}</h1>
<p v-change v-if="flag">这个显示数据</p>
<button @click="isflag"></button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script type="text/javascript">
var vm = new Vue({
el:‘#app‘,
data:{
msg:‘hello‘,
flag:true
},
methods:{
isflag:function(){
this.flag = !this.flag
}
},
directive:{//局部指令
change:{
bind:function(el,bindings){
console.log(el);
console.log(bindings);
},
unbind:function(){
console.log("解除");
}
}
}
})
</script>
4.全局组件和局部组件
<div id="app">
<global-demo></global-demo>
<scope-demo></scope-demo>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script type="text/javascript">
Vue.component(‘global-demo‘,{
template:‘<h1>这个一个全局组件</h1‘
})
new Vue({
el:‘#app‘,
data:{
},
components : {
‘scope-demo‘:{
template:‘<h2>这个一个局部组件</h2>‘
}
}
})
5.传参
<div id="app">
  <h1>{{message}}</h1>
  <hr>
  <father></father>
</div>
    <script src="https://cdn.jsdelivr.net/npm/vue"></script>
	<script type="text/javascript">
		Vue.component(‘father‘,{
			data:function(){
				return{
					msg:"这个是父组件的内容"
				}
			},
			template:`<div>
			{{msg}}
			<p><input type="text" v-model="msg"></p>
			<son v-bind:msg="msg"></son>
			</div>
			`
		})
        Vue.component(‘son‘,{
        	props:[‘msg‘],
        	data:function(){
        		return{
        		}
        	},
        	template:`<div>
        	    接收到msg的参数为:{{msg}}
        	    </div>
        	`
        })
		new Vue({
			el:‘#app‘,
			data:function(){
				return{
					message:"hello"
				}
			}
		})
	</script>
	</script>
原文:https://www.cnblogs.com/luchengx/p/12594419.html