VUE基础篇,小白进门
什么是VUE
.渐进式框架(MVVM----model-view-viewModel)
.自底向上增量开发
.核心只关注视图层
.便于与第三方库和即有项目整合
.为复杂的单页面应用程序提供驱动
VUE基础
创建vue实例
var vm = new Vue({
el:'#app' ----这里是设置挂点
data:{} ----这里是设置数据
})
<body> <div id="app"> <p>我是:{{name}}</p> <p>今年:{{age}}岁</p> </div> </body> <script src="js/vue.js"></script> <script> var vm = new Vue({ el:'#app', data:{ name:'刘备', age:'53', } }) </script>
vue 4个常用选项
filter过滤器,computed计算属性,methods方法,watch观察
<div id="app"> <p>数字1:{{num1 | toInt}}</p> <p>数字2:{{num2 | toInt}}</p> <p>总和:{{sum}}</p> <p>{{a}}</p> <p><button v-on:click="plus">+1</button></p> </div> <script> var vm = new Vue({ el:'#app', data:{ num1:23.324, num2:76.786, a:0 }, filters:{ // ES6 toInt(value){ return parseInt(value) } }, computed:{ sum(){ return this.num1+this.num2 } }, methods:{ plus(){ return this.a++; } }, watch:{ a(){ console.log(this.a) } } }) </script>
vue的生命周期
beforeCreate 即将创建 ------created创建完毕 -----------beforeMount 即将挂载 ------------mounted挂载完毕 -------------beforeUpdate 渲染之前 --------------updated 渲染之后 ------------beforeDestroy 销毁前 -------------destroyed 销毁后 ----------actived keep-alive组件激活时使用 -------------deactivated keep-alive组件停用时调用
vue在html中绑定数据
Mustache语法也就是{{}}
v-html指令渲染纯html
<!-- 如果不用v-html那么strong不会被解析 --> <div id="app" v-html="name"></div> <script> var vm = new Vue({ el:'#app', data:{ name:"<strong>前端开发</strong>" } }) </script>
v-bind指令动态绑定dom属性的值
<div id="app" > <!-- v-bind:disabled可以简写成:disabled --> <button :disabled="dis_true">我不能被点击</button> <button :disabled="dis_false">我可以被点击</button> </div> <script> var vm = new Vue({ el:'#app', data:{ dis_true:true, // 当disabled的值被解析成false时,属性disabled直接被移除掉 dis_false:false } }) </script>
vue 10个必须掌握的指令
1.v-text 用于更新标签包含的文本,雷同{{}}
2.v-html 解析纯的html标签
3.v-show 控制元素的显示/隐藏
4.v-if /v-show 频繁切换用v-show,不太可能切换用v-if
5.v-else 鉴由于v-if值为false直接被忽略
6.v-for 渲染数组循环遍历[除数组还可以迭代对象和整数]
7.v-bind 用于动态绑定dom元素属性
8.v-on 相当于绑定事件监听器
9.v-model 帮助我们轻易实现表单控件和数据双向绑定
10.v-once 只渲染一次后,后面数据更新变动都不会重新渲染
vue 组件
<div id="app"> <!-- my-article为自己定义的组件名,articles为数据存放的数组,props是传递数据detail,把item绑定在detail上 --> <my-article v-for="item in articles" v-bind:detail="item" class="useinfo"></my-article> </div> <script> Vue.component('my-article',{ props:['detail'], template:`<div><div><h1>{{detail.title}}</h1><div><span>{{detail.date}}</span><span v-show="detail.is_original">原创</span></div></div><img :src="detail.cover_url" alt="" /></div>` }) let vm = new Vue({ el:'#app', data:{ articles:[ { title:"这里是喵星人的天堂", date:"2017.6.20", is_original:true, cover_url:"imges/cat01.jpg" }, { title:"这里是喵星人的天堂", date:"2017.6.20", is_original:true, cover_url:"imges/cat02.jpg" }, { title:"这里是喵星人的天堂", date:"2017.6.20", is_original:true, cover_url:"imges/cat03.jpg" }, { title:"这里是喵星人的天堂", date:"2017.6.20", is_original:true, cover_url:"imges/cat04.jpg" } ] } }) </script>
vue组件之间的通信(父---->子)
<div id="app"> <son :message="msg"></son> </div> <script> Vue.component('son',{ props:['message'], template:`<div>{{message}}</div>` }) const app =new Vue({ el:'#app', data:{ msg:'我是父组件的数据' } }) </script>
vue组件之间通信(子----->父)
<div id="app"> <son @connect="say"></son> </div> <script> Vue.component('son',{ template:`<button @click="send">点击</button>`, data(){ return{ msg:'大家好,我是子组件的数据' } }, methods:{ send(){ this.$emit('connect',this.msg) } } }) const app = new Vue({ el:'#app', methods:{ say(msg){ console.log(msg) } } }) </script>
vue 动态绑定class与style
<div id="app2"> <p :class="{'active':isActive,'danger':isDanger,'error':isError}"> 这里是绑定Class </p> </div> <div id="app3"> <p :class="[activeClass,errorClass]" :style="{color: colorStyle}"> 这里是数组语法 </p> </div> <script> const vm=new Vue({ el:'#app2', data:{ isActive:true, isDanger:true, isError:false } }) let vm2 = new Vue({ el:'#app3', data:{ activeClass:'active', errorClass:'error', colorStyle:'red' } }) </script>
目前基础知识了解了这些,接下来会进行实践操作编写小demo来提升对vue的理解!!

浙公网安备 33010602011771号