目录
1. 介绍
1.1 说明
1.2 安装
1.3 分析vue 脚手架
1.3.1 子文件
1.3.2 src 文件夹
1.3.3 public 文件夹
1.4 render 函数
1.5 脚手架的默认配置
1.6 ref 属性
1.7 props 父传子参数
1.8 mixin 混入
1.8 插件
1.9 scoped 样式
2. ToList案例
2.1 组件化编码流程(通用)
2.1.1 静态组件
2.1.2 初始化案例
2.1.3 交互
2.2 案例总结
在电脑左下角的搜索框输入cmd,进入命令行
一、防止下载慢可以配置npm淘宝镜像:
npm config set registry https://registry.npm.taobao.org
二、全局安装 @vue/cli
npm install -g @vue/cli
三、切换创建项目的目录
vue create xxx
四、选择default(vue2.0):
如下图:表示安装成功
然后分别运行上面最底的两行命令(第一句命名每个人的不一样,命名不一样哦)
五、cd xxx
六、启动项目: npm run serve
出现下面页面
我们复制local地址去浏览器打开可以看到如下页面:
1. main.js
使用npm run serve 后直接运行(相对于入口函数)
按ctrl+~键 打开vscode 终端
// 整个项目的入口文件
// 引入vue框架
import Vue from 'vue'
// 引入APP组件,是父组件
import App from './App.vue'
// 关闭vue的生产提示
Vue.config.productionTip = false
// 创建vue实例对象vm
new Vue({
// 功能是将App组件放入app容器中
render: h => h(App),
}).$mount('#app')
// 相当于 el:'#app'
2. App.vue:父组件
3. assets文件夹:静态资源文件,放公共的图片,视频等
4. components文件夹:所有组件存放的地方,除了父组件App.vue,组件名要用驼峰命名法
1. index.html:
<%= htmlWebpackPlugin.options.title %>
2. favicon.icon: 字体图标
组件name 要用双驼峰命名法(StudentName)或者student-name 法!!!!
1. vue.js与vue.runtime.js的区别
vue.js 是完整版的,包含核心功能和模板解析器
vue.runtime: 是运行版的,没有模板解析器
2. 因为后者没有模板解析器,所以不能解析template 配置项,需要用render 函数接收createElement函数具体内容
只有在main.js 文件的创建vm时使用render 函数,其他的不用
默认不能改的文件:
其他文件可以改:在官网,参考配置左边的都是可以改的,
修改方法:
创建vue.config.js (要与package.json同级目录下)(vue-cli 5.0以上的安装时就有这个文件)
vue.config.js:脚手架与webpack 配置合并
修改完文件一定要关闭重启 npm run serve
语法检查:ESlint、jslint
关闭语法检查:lintOnSave:false
使用方式:
功能:让组件接收外部传过来的数据
传递数据:
接收数据三种方式:
1.(只接收):props['name'] (数组型)
2.(限制类型):props:{ name:Number } (对象型)
3.(限制类型、限制必要性、指定默认值):
props:{
name:{
type:String,
required:true,
default:'lisa'
}
}
注意:
使用方式:
第一步定义混合:
export const mixin={
data(){},
methods:{}
}
第二步使用混入:
记得要先用import引入文件
1.全局混入:Vue.mixin(xxx)
2. 局部混入:mixins:['xxx']
功能:用于增强Vue
本质:包含install方法的对象,install的第一个参数是Vue,第二个以后的参数是插件使用者传递的数据。
定义插件:
插件文件一般命名plugins.js
```js
对象.install = function (Vue, options) {
// 1. 添加全局过滤器
Vue.filter(....)
// 2. 添加全局指令
Vue.directive(....)
// 3. 配置全局混入(合)
Vue.mixin(....)
// 4. 添加实例方法
Vue.prototype.$myMethod = function () {...}
Vue.prototype.$myProperty = xxxx
}
使用插件:
在main.js使用:Vue.use()
补充:
import 引入文件是后来者居上原则,样式相同后面会覆盖前面的