Vue入门整理

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

简介

Vue是一个响应式的web视图层框架;响应式: 我们写代码只关注数据,视图随数据变化而变化。 视图层:UI层面的内容 框架和库框架是整个应用程序的设计方案,我们要做到一些功能,就必须遵照框架的规则去实现 是很多方法的集合,是项目中功能的解决方案。我们要实现一些功能,可以自主的去调用库里的方法,还可以自己去定义一个方法实现。

引入Vue

1.直接cdn引入

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> 1. 引⽤全部 vue.js,运⾏时编译及渲染 javascript <div id="app"> <p>{{message}}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> <script> new Vue({ el: '#app', data: { message: 'hello-world', }, }) </script> 运行时会先按照花括号的格式渲染成文本,等vue依赖下载完成,并且通过实例化拿到message的值之后才会编译并渲染出vue模板下的页面

2. 引⽤部分 vue.js,仅引⼊渲染部分

这种方式不会有编译的过程,代码自上往下执行,数据有时,才渲染相应数据页面,也经常在Vue.component()中使用javascript <div id="app"></div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> <script> new Vue({ el: '#app', data: { message: 'hello-world', }, render: function(createElement) { return createElement('p',this.message) } }) </script>

2.vue-cli工程化搭建项目

常用指令

1.v-bind绑定属性

javascript <div id="app"> <p v-bind:title="title">{{message}}</p> <!-- 缩写格式 --> <p :title="title">{{message}}</p> </div> <script> new Vue({ el: '#app', data: { message: 'hello-world', title: 'world-title', }, }) </script>

2.v-on绑定事件

javascript <div id="app"> <p v-on:click="changeMessage()">{{message}}</p> <!-- 缩写格式 --> <p @click="changeMessage()">{{message}}</p> </div> <script> new Vue({ el: '#app', data: { message: 'hello-world', }, methods: { changeMessage: function() { if (this.message === 'hello-world') { this.message = 'world'; } else { this.message = 'hello-world' } } } })

3.v-model

javascript <div id="app"> <p v-for="item in items">{{item}}</p> </div> <script> new Vue({ el: '#app', data: { items: [1,2,3,4,5,6], }, }) </script>

4.v-show

javascript <div id="app"> <p v-for="item in items" v-show="item !== 4">{{item}}</p> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> <script> new Vue({ el: '#app', data: { items: [1,2,3,4,5,6], }, }) </script>

5.v-if/v-else

javascript <div id="app"> <p v-for="item in items"> <span v-if="item >= 5" :style="{color: 'red'}">大于等于5</span> <span v-else :style="{color: 'blue'}">小于5</span> {{item}} </p> </div> <script> new Vue({ el: '#app', data: { items: [1,2,3,4,5,6], }, }) </script>

6.v-for

javascript <div id="app"> <p v-for="(item,index) in items">{{item}}-{{index}}</p> <p v-for="(value,key) in obj">{{key}}-{{value}}</p> </div> <script> new Vue({ el: '#app', data: { items: [1,2,3,4,5,6], obj: {a:1,b:2,c:3} }, }) </script>

7.v-html

javascript <div id="app" v-html="html"> </div> <script> new Vue({ el: '#app', data: { html: '<p>Hello-World</p>' }, }) </script>

8.v-text

javascript <div id="app"> <p v-text="text"></p> </div> <script> new Vue({ el: '#app', data: { text: 'Hello-World' }, }) </script>

计算属性与函数

javascript <div id="app"> <p>{{message}}</p> <input v-model="message"></input> <input v-model="message2"></input> <p v-if="getLen">长度大于11</p> <p v-else>长度小于等于11</p> <p>{{len()}}</p> </div> <script> new Vue({ el: '#app', data: { message: 'Hello-World', message2: 'Hello-World2' }, computed: { getLen: function () { console.log('computed') return this.message.length > 11; } }, methods: { len: function() { console.log('function') return this.message.length; } } }) </script> 执行上述代码可见

1.改变message,computed和function都会触发

在这里插入图片描述

2.改变message1,computed不会触发,而function依旧会触发

在这里插入图片描述 所以,computed只会在依赖发生改变时触发更新值。

组件

javascript <div id="app"> <hello-world v-for="item in items" :item="item"></hello-world> </div> <script> Vue.component('hello-world', { props: ['item'], render: function(createElement) { return createElement('p', this.item) } }) new Vue({ el: '#app', data: { items: [1,2,3,4,5,6], }, }) </script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值