vue

Vue.js 基础指南

2018-11-05  本文已影响23人  oo高学吟

引用

vue.js脚本地址如下:

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script src="https://unpkg.com/vue"></script>

基础


组件

在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例。

Vue.component(tagName, options)

注意确保在初始化根实例之前注册组件:

// 定义名为 myitem 的新组件
Vue.component('myitem', {
    // myitem 组件现在接受一个
    // "prop",类似于一个自定义特性。
    props: ['attributeA','attributeB'], // 在 JavaScript 中使用 camelCase
    template: '<li>{{ attributeA.text }} _ {{ attributeB }}</li>'
});
        //Prop 验证
        props:{
            propA: Number,
            propB: [String, Number],
            propC: {
              type: Number,
              required: true,
              default: 100 //默认值
            },
            // 自定义验证函数
            propD: {
              validator: function (value) {
                return value > 10
              }
            }
        }

var app = new Vue({
    el: '#app',
    data: {
        groceryList: [
            { id: 0, text: '蔬菜' },
            { id: 1, text: '奶酪' },
            { id: 2, text: '随便其他什么人吃的东西' }
        ]
    }
});

模板使用:

<myitem v-for="item in groceryList" :attribute-a="item" :attribute-b="item.id" :key="item.id"></myitem>
     ↓ ↓ ↓                                 ↓在HTML中使用 kebab-case↓
<li is="myitem" v-for="item in groceryList" :attribute-a="item" :attribute-b="item.id" :key="item.id"></myitem>

    //html上可以直接添加非 Prop 属性 
                ↓ ↓ ↓ 
    <myitem some-attr="xxx"></myitem>

注意这里的 is="myitem" 属性。
这种做法在使用 DOM 模板时是十分必要的,因为在 <ul> 元素内只有 <li> 元素会被看作有效内容。
这样做实现的效果与 <myitem> 相同,但是可以避开一些潜在的浏览器解析错误。

构造 Vue 实例时传入的各种选项大多数都可以在组件里使用。只有一个例外:++data 必须是函数++。


事件处理

上一篇下一篇

猜你喜欢

热点阅读