已经发布在个人博客,不断进行更新欢迎收藏订阅,或者提出批评意见。
有一些方法函数可能并不经常使用,但是遇到特定场景需要的时候却想不起来,所以需要把平时碰到的这些方法和函数进行备案,在需要的时候可以查询。
字符串反转
reverseMessage: function () { this.msg = this.msg.split('').reverse().join('')}
Todos
- { {todo.text}}
复选表单
Checked names: { {checkedNames}}
动态选项,用 v-for 渲染
Selected: { {selected}}
指令实例属性
对象字面量
MVVM 数据绑定
{ {msg}}
利用v-if或者v-show进行条件判定
输入您的姓名: 登录用户: 登录密码:
Directive
对 Todo List 输入的内容进行校验(表单校验)。基本逻辑就在在bind
阶段的时候就绑定事件,然后根据update
时候传入的 minlength 值来进行判断。
Directive 基本结构如下:
Vue.directive("minlength", { bind: function () { }, update: function (value) { }, unbind: function () { }});
Vue.directive("minlength", { bind: function () { var self = this, el = this.el; el.addEventListener("keydown", function (e) { if (e.keyCode === 13) { if (el.value.length < self.minlength) { e.preventDefault(); } } }); var submit = el.parentNode.querySelector("button,[type='submit']"); submit.disabled = true; el.addEventListener("keyup", function (e) { submit.disabled = (el.value.length < self.minlength); }) }, update: function (value) { this.minlength = parseInt(value); }, unbind: function () { }});
动态组件
var vm = new Vue({ data: { currentView: "home" }, components: { home: { template: `Home` }, posts: { template: `Posts` }, archive: { template: `Archive` } }}).$mount('#app');document.getElementById('home').onclick = function () { vm.currentView = "home";};document.getElementById('posts').onclick = function () { vm.currentView = "posts";};document.getElementById('archive').onclick = function () { vm.currentView = "archive";};
使用script或template标签
使用script标签
使用template标签
This is a test component.
使用props
组件实例的作用域是孤立的。这意味着不能并且不应该在子组件的模板内直接引用父组件的数据。可以使用 props
把数据传给子组件。
props基础示例
// 将父组件数据通过已定义好的props属性传递给子组件
子组件数据 my name { {myName}} my age { {myAge}}
如果我们想使用父组件的数据,则必须先在子组件中定义props
属性,也就是props: [‘myName', ‘myAge']
这行代码。
注意:在子组件中定义prop
时,使用了camelCase
命名法。由于HTML特性不区分大小写,camelCase
的prop
用于特性时,需要转为kebab-case
(短横线隔开)。例如,在prop
中定义的myName
,在用作特性时需要转换为my-name
。
在父组件中使用子组件时,通过以下语法将数据传递给子组件:
prop的绑定类型
单向绑定
- 修改了子组件的数据,没有影响父组件的数据。
- 修改了父组件的数据,同时影响了子组件。
prop
默认是单向绑定:当父组件的属性变化时,将传导给子组件,但是反过来不会。这是为了防止子组件无意修改了父组件的状态。
双向绑定
可以使用.sync
显式地指定双向绑定,这使得子组件的数据修改会回传给父组件。