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

 

posted @ 2020-03-29 10:02  方诚  阅读(657)  评论(0编辑  收藏  举报