Vue_初探

## 前端三大框架

    vue

    react

    angular

## 学源码:更好的使用vue

## vue:渐进式

    1 js框架    框架 vs库

    vue-core + components + vue-router + vuex[复杂项目] + vue-cli

    2 mvvm框架

        mvc:model view controller

        view---viewmodel---model

## vue基本使用

【1】基本使用

<!-- view -->

<div id="app">

        {{msg}}{{2+9}}

</div>

<!-- 模块化思想 -->

<script src="./node_modules/vue/dist/vue.js"></script>

<script>

// vm相当于viewmodel

let vm = new Vue({

el: '#app', //底层使用document.querySelect('#app')

// model

data() {

return {

msg: 'hello Vue'

                }

            }

        }); // vm

vm.msg = 'progressive javascript framework'; //数据驱动视图  数据改变    视图自动更新

</script>


【2】双向单向绑定

v-html:把数据填充到标签 支持标签[即:支持script JS语法使用] 谨慎使用

v-text:把数据填充到标签

v-pre:显示原内容

v-once:给标签只绑定数据一次,后面数据更新,标签内容不会发生变化

v-model 双向数据绑定,试图改变影响数据 数据改变影响视图

v-bind 单向绑定数据

<div id="app">

<div v-html>{{msg}}</div>

<div v-pre>{{msg}}</div>

<div>{{msg}}</div>

<p v-once>{{msg}}</p>

<div>

<input type="text" v-model="uname">

<!-- 语法糖 v-bind:属性 简写:属性 -->

<input type="text" v-bind:value="uname" name="" id="">

</div>

</div>

<!-- 模块化思想 -->

<script src="./node_modules/vue/dist/vue.js"></script>

<script>

// vm相当于viewmodel

let vm = new Vue({

el: '#app', //底层使用document.querySelect('#app')

// model

data() {

return {

msg: 'hello Vue',

msg1: '<h1>Vue</h1>',

uname: 'macro'

                }

            }

        }); // vm

vm.msg = 'progressive javascript framework';

【3】绑定单击事件

<div id="app">

<button v-on:click="num++">点我加1</button>

<!-- 假如实践直接绑定函数名 默认会传事件对象作为第一个实参 -->

<button v-on:click="increase1">点我加1</button>

<!-- 语法糖 @事件名称 是v-on:事件名称的简写 -->

<button @click="increase1(1,2,$event)">点我加1</button>

<p>{{num}}</p>

</div>

===============================================

// vm相当于viewmodel

let vm = new Vue({

el: '#app', //底层使用document.querySelect('#app')

// model

data() {

return {

num: 1

                }

            },

// 定义方法的节点

methods: {

increase() {

this.num++;

                },

increase1(a, b, event) {

console.log(a, b);

console.log(event);

this.num++;

                }

            }

        });

【3】阻止事件冒泡和默认行为

<div id="app">

<p @click="increase">

<!-- .stop:阻止冒泡 -->

<button @click.stop="num++">点我加1</button>

<button @click="num++">点我加2</button>

</p>

<!-- 两种阻止方式 .prevent:阻止默认行为 -->

<a href="http://www.qq.com" @click.prevent="handleClick">腾讯</a>

<p>{{num}}</p>

</div>

==============================================

// vm相当于viewmodel

let vm = new Vue({

el: '#app', //底层使用document.querySelect('#app')

// model

data() {

return {

num: 1

                }

            },

// 定义方法的节点

methods: {

increase() {

this.num++;

                },

handleClick(event) {

console.log(111);

// event.preventDefault();

                }

            }

        }); // vm

【4】键盘按起事件

<dic id="app">

<input type="text" v-model="uname" @keyup.delete="clearText" />

<input type="text" v-model="pwd" @keyup.abc="clearPwd" />

</dic>

=============================================

Vue.config.keyCodes.abc = 65;    // 对应a~65

// vm相当于viewmodel

let vm = new Vue({

el: '#app', //底层使用document.querySelect('#app')

// model

data() {

return {

uname: '',

pwd: ''

                }

            },

// 定义方法的节点

methods: {

clearText() {

this.uname = '';

                },

clearPwd() {

this.pwd = '';

                }

            }

        }); // vm

原文地址:https://www.cnblogs.com/macro-renzhansheng/p/13061823.html