zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    javascript 的原型与原型链的理解
    mysql 复制原理与实践
    mysql 数据库备份的多种方式
    mysql 事务中如果有sql语句出错,会导致自动回滚吗?
    【原】ios下比较完美的单例模式,已验证
    【原/转】ios指令集以及基于指令集的app包压缩策略
    【原】多线程编程中临界区与互斥锁的区别
    【转】Windows的多线程编程,C/C++
    【转】c++中Vector等STL容器的自定义排序
    【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
  • 原文地址:https://www.cnblogs.com/macro-renzhansheng/p/13061823.html
Copyright © 2011-2022 走看看