下午感觉要起飞了,给我们点时间练一下
保留最终解释权
晕晕乎乎的一天就过去了
保留最终解释权
1.后端代码的抽取感觉还可以,前端代码抽取懵,关于哪个需要依赖、注入,哪个不需要依赖、注入,不懂?
输入服务 是需要使用的时候
配置期 config -> 可以注入供应商服务对象,对于具体服务进行配置
运行期 非config都算是运行期
service/factory(通过return 返回任意类型对象)/controller/derective/filter
以上都可以用来注入服务对象(service/factory)
如何区分是否能依赖注入
形参名基本以$开头
//根据顺序来的
link:function(scope,element,attrs)
2.自己建了一个服务器,数据库,可是这个项目还是不知道从哪开始敲起
看需求有哪些页面,配置路由显示页面,根据API接口完成页面上的动态数据交互
3.webpack-dev-server 再讲一下吧,还是不太懂
工具,在学校的时候,要掌握的东西是重点学习的东西,而不是工具
在企业开发中,遇上了相关问题,再去看看别的东西
让大家不用去关注除了主核心以外的东西
–inline --hot --open --port 9999
老师,能不能给点时间练练
保留最终解释权
黑马岳父, angular飞晕了, node飞丢了, vue稍微稳点飞, vue是最后的杀手锏了, 也是唯一能吹牛的资本了
1:主要学习的是VUE,快速进入VUE让大家体会VUE的使用
2:webpack前端构建构建,前期铺垫基本使用,后面看到不晕
3:在做完项目以后,模拟项目开发的真实打包,区分打包的意义所在(webpack)
const path = require('path')
module.exports = {
entry:{ main是默认入口,也可以是多入口
main:'./src/main.js'
},
出口
output:{
filename:'./build.js', 指定js文件
path: path.join(__dirname,'..','dist',) 最好是绝对路径
代表当前目录的上一级的dist
},
module:{
一样的功能rules: webpack2.x之后新加的
loaders:[ require('./a.css||./a.js')
{test:/\.css$/,
loader:'style-loader!css-loader',
顺序是反过来的2!1
},
{
test:/\.(jpg|svg)$/,
loader:'url-loader?limit=4096&name=[name].[ext]',
顺序是反过来的2!1
[name].[ext]内置提供的,因为本身是先读这个文件
options:{
limit:4096,
name:'[name].[ext]'
}
}
]
},
plugins:[
插件的执行顺序是依次执行的
new htmlWebpackPlugin({
template:'./src/index.html',
})
将src下的template属性描述的文件根据当前配置的output.path,将文件移动到该目录
]
}
import [,..xxx] [,..from] './xxx.ext'
export default obj;
export var obj = xxx;
export var obj2 = {};
export {stu};
import {obj,obj2,stu} from './xxx.js'; 直接使用obj
{
default:"我是默认导出的结果"
import xxx from './cal.js'会获取到整个对象的default属性
obj1:"我是声明式导出1"
obj2:"我是声明式导出2"
obj3:"我是声明式导出3" import {obj1,obj2}
obj4:"我是声明式导出4"
}
import * as allObj from './cal.js'; 获取的就是一整个对象
var name = 'abc';
var person = {name}; 简写-> var person = {name:name};
声明函数
var cal = {
add:function(){
return 1;
},
add2(){
return 2;
},
add3:funtion(n1,n2){
return n1 + n2;
},
add4(n1,n2){ 干掉了function
return n1 + n2;
}
}
+ +
..\\node_modules\\.bin\\webpack-dev-server --inline --hot --open
Object.defineProperty
来实现的(IE9及以上):属性名="表达式"
:class="{'A':'red','B':'blue','C':'yellow'}[person.score]"
v-on:事件名="表达式||函数名"
@事件名="表达式||函数名"
可以使用操作数组 (item,index)
可以使用操作对象 (value,key,index)
key 是类似trank by 的一个属性
--> 提升性能
为的是告诉vue,js中的元素,与页面之间的关联,当试图删除元素的时候,是单个元素的删除而不是整版替换,所以需要关联其关系,设置key(必须,性能)
2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的。
this.pro = '';
template
标签中使用
scoped
//引用子组件对象
import 子组件对象 from './xxx.vue';
{
//声明子组件
components:{
组件名:子组件对象
}
}
Vue.component('组件名',组件对象);
中传值)
data
的return
中定义变量)props
接受父组件值的传入 props:['prop1','prop2']
之后就可以使用)
import connect from './connector.js'
import Vue from 'vue';
var connector = new Vue();
export default connector;
connect.$on('同一事件名phone',fn(prop1,pro2))
connect.$emit('同一事件名phone',prop1,pro2)