zoukankan      html  css  js  c++  java
  • vue2.x入门学习

    vue安装

    # 最新稳定版本
    $ npm install vue
    
    # 最新稳定 CSP 兼容版本
    $ npm install vue@csp

    引包

    cd /d/vue/demo

    cnpm install vue@csp

    $ ll node_modules/vue/dist/

    total 1509

    -rw-r--r-- 1 tanpengfei3 1049089    279  4月 27  2016 README.md

    -rw-r--r-- 1 tanpengfei3 1049089 403335  9月 28  2016 vue.common.js

    -rw-r--r-- 1 tanpengfei3 1049089 402783  9月 28  2016 vue.js

    -rw-r--r-- 1 tanpengfei3 1049089 131766  9月 28  2016 vue.min.js

    -rw-r--r-- 1 tanpengfei3 1049089 594279  9月 28  2016 vue.min.js.map

    vue.min.js 压缩删减版

    vue.js 完整版本

    mkdir a01_v_newvue

    mkdir -p static/js

    cp ../node_modules/vue/dist/vue.js static/js/

    index.html

    <!DOCTYPE html>
    <html>
    <head>
        <title>引包,el,模板,data, 插值</title>
    </head>
    <body>
    <div id="app"></div>
    
    <script type="text/javascript" src="static/js/vue.js"></script>
    <script type="text/javascript">
    
    new Vue({
        el:"#app",
        template:`
        <div>模板显示:{{msg}}</div>
        `,
        data:function(){
            return {
                msg: '数据'
            }
        }
    });
    
    </script>
    
    </body>
    </html>

    页面显示

    模板显示:数据

    注意事项:vue 与 Vue 是不同的

    常用指令

    以数据驱动dom:将经常操作dom的js方法化为一系列元素标签

    v-text:  元素文本innerText,必须是双标签,将内容解析为字符串文本

    v-html: 元素标签innertHTML

    v-if: 判断是否插入dom,append remove,相关指令 v-else-if v-else

    v-show:判断是否隐藏 display:none

    v-for: 数组index,item 对象key,value,也可以是item,value

    <!DOCTYPE html>
    <html>
    <head>
        <title>引包,el,模板,data, 插值</title>
    </head>
    <body>
    <div id="app"></div>
    
    <script type="text/javascript" src="static/js/vue.js"></script>
    <script type="text/javascript">
    
    new Vue({
        el:"#app",
        template:`
        <div>
        
            <div v-text="mytext"></div>
            <div v-html="myhtml"></div>
            <div v-if="addButton">你看到我了</div>
    
            <button v-if="num==11">11</button>
            <button v-else-if="num==12">12</button>
            <button v-show="cshow">v-show</button>
    
        <ul>
            <li v-for='item in arr_data'>
            {{item}}
            </li>
        </ul>
        <ul>
            <li v-for='(index,item) in arr_data'>
                {{index}}:{{item}}
            </li>
        </ul>
        <ul>
            <li v-for='(index,item) in arr_data'>
                {{index}}:{{item}}
            </li>
        </ul>
        <ul>
            <li v-for='(key,value) in res'>
                {{key}}:{{value}}
            </li>
        </ul>
        </div>
        `,
        data:function(){
            return {
                mytext: '<h3>文本数据</h3>',
                myhtml: '<h3>文本数据</h3>',
                addButton: false,
                num: 12,
                cshow: false,
                arr_data: ['','','','',''],
                res: {data:"九千九百九十九朵...",action:"送你"}
            }
        }
    });
    
    </script>
    
    </body>
    </html>
    <!--使用 v-cloak能够解决插值刷新闪烁问题-->
    <p v-cloak>{{msg}}</p>

    单双向数据流及事件绑定

    单向绑定:内存改变时,自动触发页面渲染,从而让页面随之变化;v-bind,通用元素

    双向绑定:内存与页面相互影响; v-model,只作用于有value属性的元素

    事件绑定:v-on:事件名="表达式||函数名"  简写 @事件名="表达式||函数名",事件名可原生或自定义

    <input v-bind:value="name" v-bind:class="name"/>
    <input v-bind:value="name" :class="name"></input>
    <input type="text" v-model="name" v-bind:class="name"/>
    <button v-on:click="name='我点击了按钮'">变值</button>
    <button v-on:click="change">方法调用</button>
     
     
    <div id="app"></div>
    
    <script type="text/javascript" src="static/js/vue.js"></script>
    <script type="text/javascript">
    
    new Vue({
        el:"#app",
        template:`
        <div>
        
            <input v-bind:value="name" :class="name"></input>
            <input type="text" v-model="name" v-bind:class="name"/>
    
            <button v-on:click="name='我点击了按钮'">变值</button>
            <button v-on:click="change">方法调用</button>
        </div>
        `,
        data:function(){
            return {
                name: 'input_value'
            }
        },
        methods:{
            change: function(){
                this.name = '方法 调用'
            }
        }
    });
    </script>

     IDE

    https://download-cf.jetbrains.com/webstorm/WebStorm-2019.3.1.tar.gz

  • 相关阅读:
    JS对象—字符串总结(创建、属性、方法)
    vue过滤器(filter)
    mac快捷键大全
    mac版 sublime快捷键大全
    mysql数据库—表的查询排序操作大全
    emmet的html和css使用技巧大全
    Java多线程——ReentrantLock源码阅读
    你真的懂ThreadPoolExecutor线程池技术吗?看了源码你会有全新的认识
    Java多线程——AQS框架源码阅读
    Java多线程——ReentrantReadWriteLock源码阅读
  • 原文地址:https://www.cnblogs.com/perfei/p/12590997.html
Copyright © 2011-2022 走看看