VUE2

版本:(2.6.14)

创建 Vue 实例

每个 Vue 实例都是通过 Vue() 函数创建的。

var vm = new Vue({
  // 选项
})

当Vue实例被创建时,会将 data 属性对象中的 property 加入到 Vue 的响应式系统中,这些数据改变时,视图会被重新渲染。如果是在实例创建后新增的属性,其值发生变化时视图不会重新渲染。

vm.msg='message!'

可以使用 Object.freeze() 方法将某个属性从响应系统中排除。


显示变量 {{  }}

<body>
    <div id="app">
        <p>{{message}}</p>
        <p>{{message + "!"}}</p>
        <p v-once>{{message}}</p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                message : "Vue Demo"
            }
        })
    </script>
</body>

v-once 改变值后页面也不会更新。


显示HTML内容 v-html

<body>
    <div id="app">
        <p>{{message}}</p>
        <p v-text="message"></p>
        <p v-html="message"></p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                message : "<font color='red'>Vue Demo</font>"
            }
        });
    </script>
</body>

v-bind 属性绑定

<body>
    <div id="app">
        <p v-bind:title="message">使用v-bind设置属性</p>
        <p v-bind:title="'Tip: ' + (1 + num)">支持表达式运算</p>
        <p :title="message">使用缩写</p>
        <p v-bind:title="boolTrue">使用boolean类型true</p>
        <p v-bind:title="boolFalse">使用boolean类型false,将不会有title属性</p>
        <p v-bind:title="boolString">使用字符串false</p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                message : "Vue Demo",
                num: 10,
                boolTrue: true,
                boolFalse: false,
                boolString: "false"
            }
        });
    </script>
</body>


分支 v-if & v-else & v-if-else

v-if 条件不满足时,DOM结构中将不存在该标签。

<body>
    <div id="app">
        <p v-if="gender === 'M'">男</p>
        <p v-else-if="gender === 'W'">女</p>
        <p v-else>未知</p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                gender: "0"
            }
        });
    </script>
</body>

指令 v-show

与 v-if 是不同的,v-show 是通过设置标签的样式 display 来控制是否显示的。 

<body>
    <div id="app">
        <p v-show="color === 'red'" style="color: red;">红色</p>
        <p v-show="color === 'blue'" style="color: blue;">蓝色</p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                color: "red"
            }
        });
    </script>
</body>

遍历数组 v-for

<body>
    <div id="app">
        <!-- 遍历数组 -->
        <p v-for="article in articles">
            {{article.title}} ----- {{article.author}}
        </p>
        <!-- 遍历数组,使用第二个参数 -->
        <p v-for="(article, index) in articles">
            {{index}} ----- {{article.title}} ----- {{article.author}}
        </p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                articles: [
                    {title: "VUE", author: "vue"},
                    {title: "JAVA", author: "java"},
                    {title: "PHP", author: "php"}
                ]
            }
        });
    </script>
</body>

你也可以用 of 替代 in 作为分隔符

遍历对象属性 v-for

<body>
    <div id="app">
        <p v-for="(value) in user">
            {{value}}
        </p>
        <p v-for="(value, name) in user">
            {{name}} : {{value}}
        </p>
        <p v-for="(value, name, index) in user">
            {{index}} - {{name}} : {{value}}
        </p>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                user: {
                    name: "姓名1",
                    gender: "男",
                    age: 21
                }
            }
        });
    </script>
</body>

数据绑定 v-model

<body>
    <div id="app">
        <form>
            标题: <input type="text" name="title" v-model="article.title" /> - {{article.title}}
            <br />
            作者: <input type="text" name="author" v-model="article.author" /> - {{article.author}}
            <br />
            简介:<input type="text" name="profile" v-model="article.profile" /> - {{article.profile}}
            <br />
            性别:
            <input type="radio" name="gender" value="M" v-model="user.gender" >男</input>
            <input type="radio" name="gender" value="W" v-model="user.gender" >女</input>
            - {{user.gender}}
            <br />
            爱好:
            <input type="checkbox" name="hobby" value="1" v-model="user.hobby">你懂得1</input>
            <input type="checkbox" name="hobby" value="2" v-model="user.hobby">你懂得2</input>
            <input type="checkbox" name="hobby" value="3" v-model="user.hobby">你懂得3</input>
            - {{user.hobby}}
            <br />
            性别: <select name="gender" v-model="user.gender">
                <option value="0">未知</option>
                <option value="M">男</option>
                <option value="W">女</option>
            </select> - {{user.gender}}
        </form>
    </div>
    <script>
        var vue = new Vue({
            el: "#app",
            data: {
                article: {
                    title: "文章标题",
                    author: "文章作者"
                },
                user: {
                    gender: '',
                    hobby: []
                }
            }
        });
    </script>
</body> 





转载请指明出处!http://www.miselehe.com/article/view/211