vue
1.require.context("./test",true,/.test.js$/);
参数:你要引入文件的目录;是否要查找该目录下的子目录;匹配要引入的文件
返回结果:返回一个reuqire函数,该函数有三个属性
resolve:也是一个函数,返回的是被解析模块的id
keys:也是一个函数,返回的是一个数组,该数组是由所有可能呗上下文模块解析的请求对象组成
id:上下文模块的id
2.props的用法
组件实例作用域孤立,子组件不能直接使用父组件中的数据;必须通过props声明接收。props是单向绑定,父组件数据更新,子组件才更新。
在两种情况下,我们很容易忍不住想去修改 prop 中数据:
Prop 作为初始值传入后,子组件想把它当作局部数据来用;
Prop 作为原始数据传入,由子组件处理成其它数据输出。
定义一个局部变量,并用 prop 的值初始化它:
props: ['initialCounter'],
data: function () {
return { counter: this.initialCounter }
}
定义一个计算属性,处理 prop 的值并返回:
props: ['size'],
computed: {
normalizedSize: function () {
return this.size.trim().toLowerCase()
}
}
注意在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,在子组件内部改变它会影响父组件的状态。
<div id="app3">
<my-component :object='object'></my-component>
</div>
<script src="http://vuejs.org/js/vue.min.js"></script>
<script>
//
var mycom = Vue.component('my-component', {
//添加一个input改变子组件的childOject,那么父元素的object也会被改变,但是Vue没有报错!
template: '<p>{{ object.name }} is {{ object.age }} years old.
<input v-model="childObject.name" type="text"></p>',
props: ['object','school'],
data: function () {
// 子组件的childObject 和 父组件的object 指向同一个对象
return {
childObject: this.object
}
}
});
var app3 = new Vue({
el: '#app3',
data: {
object:{
name: 'Xueying',
age: '21',
},
school:'SCUT',
},
})
</script>
3.parent来直接修改父组件的数据,不会报错,建议使用props显示传递,子组件修改父组件的数据是很糟糕的
4.规则:js中使用驼峰命名法,html中换成短横线分隔式命名
5.v-bind和v-model的区别
v-bind用来绑定数据、属性、表达式,可缩写为:
v-model只能在表单中使用,实现双向数据绑定,可以绑定text、radio、checkbox、selected