程序员

vue 基础学习 第一天

2018-05-17  本文已影响106人  那就远走

引用vue

1 构建第一个vue程序

<!-- 指定元素id -->
<div id="app"> 
    <h1> {{title}} </h1> <!-- 插值{{}} -->
</div>
<script>
    // 新建 app 组件
    var app = new Vue({
        el: '#app', //绑定id
        data: {
            title: '标题', //配置数据
        },
    });
</script>

2 操作元素属性

var app = new Vue({
    el: '#app',
    data: {
        // key: value,
        color: 'red',
    },
});

3 v-model & v-once

<div id="app">
    <h1> {{ content }} </h1>
    <h2 v-once> {{ content }} </h1>
    <input type="text" v-model="content">
</div>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            content: '远走',
        },
    });
</script>

注意元素中的属性,不需要{{}} 。而标签中的内容,需要使用{{}}

4 v-text & v-html

<div id="app">
    <div v-text="content"></div>
    <div v-html="content"></div>
</div>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            content: '<p>v-text & v-html</p>'
        },
    });
</script>

使用 v-text 渲染绑定标签内容为纯文本, v-html 则会解析 html标签

5使用 js表达式 在标签属性或者内容里面进行运算

<div id="app">
    <p :class="'style'+n">test...</p>
    <p><small>这是当前的n的值</small> {{n+'因为切换颜色的单选框.value是字符串,所以我这里也变成字符串了'}} </p>
    <input type="radio" v-model="n" value="1"> 红 
    <input type="radio" v-model="n" value="2"> 蓝
</div>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            n: 1,
        },
    });
</script>

6 computed 计算

<div id="app">
    <input type="text" v-model="num1"> +
    <input type="text" v-model="num2"> =
    <input type="text" v-model="sum">
</div>

<script>
    var app = new Vue({
        el: '#app',
        computed: {
            sum: function() {
                return this.num1*1 + this.num2*1;
            }
        },
        data: {
            num1: 0,
            num2: 0,  
        },
    });
</script>

7 watch 监听某个 data 的变化

<div id="app">
    <input type="text" v-model="keyWord">
    {{ content }}
</div>

<script>
    var app = new Vue({
        el: '#app',
        watch: {
            keyWord: function(newWord, oldWord) {
                // 将新值作为数据参数 $_GET['word'] 请求 7.php 
                axios.get('./7.php?word=' + newWord).then(function(response) {
                    app.content = response.data;
                });
            }
        },
        data: {
            keyWord: '',
            content: '',
        },
    });
</script>

通常来说502是后台有问题(php) 404是前台有问题(没找到url,地址写错了)

keyWord: _.debounce( //第一个参数是调用的函数, 第二个参数是等待的时间
        function(newWord, oldWord) {
        // 将新值作为数据参数 $_GET['word'] 请求 7.php 
        axios.get('./7.php?word=' + newWord).then(function(response) {
            app.content = response.data;
        })
    },
    3000, //等待时间(3s才执行一次函数)
)

8 使用数组的对象导入样式

.blue {color: blue;}
.red {color: red;}
.font {font-size: 30px;}
<div id="app">
    <!-- vbind:class 简写为 :class -->
    <!-- 会覆盖 class 定义的样式 因为 :class 会在 class 载入后再载入。 -->
    <h1 class="blue" :class="style1">测试文字</h1>
    <hr>
    <!-- 可以绑定数组 -->
    <h1 :class="[style2, style3]">测试文字</h1>
</div>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            style1: {red: true, font: true}, //设置为true 则开启使用样式
            style2: 'blue', // key: value 这里的value对应 <style>里面定义的样式</style>
            style3: 'font',
        },
    });
</script>

9 修改 style 属性的几种方式

<div id="app">
    <!-- 1、直接写对象 -->
    <p :style="{color: 'red', fontSize: size+'px'}">嗯</p> 
    <!-- 注意: 【''】单引号包起来的才是字符串,否则比如 size 就一定是在data里面定义的变量 -->
    <input type="number" v-model="size">
    
    <!-- 2、使用对象: 再次强调这里的 styleObj 是 data 里定义的对象 -->
    <p :style="styleObj">哈</p>
    
    <!-- 3、使用数组:导入多个对象  -->
    <p :style="[styleObj, styleObj2]">哦</p>
</div>

<script>
    var app = new Vue({
        el: '#app',
        data: {
            size: 20,
            styleObj: {
                color: 'blue',
                fontSize: '30px',
            },
            styleObj2: {
                background: 'red',
            }
        },
    });
</script>
上一篇下一篇

猜你喜欢

热点阅读