Vue组件化编码
Vue创建项目1. 使用vue-cli创建模板项目,是vue官方提供的脚手架工具2. vue-cli的github地址:https://github.com/vuejs/vue-cli/tree/v23. 创建项目命令npm install -g vue-cli:安装vue-cli脚手架vue init webpack vue_demo:使用webpack模板创建项目cd vue_demo:进入项
·
Vue创建项目
1. 使用vue-cli创建模板项目,是vue官方提供的脚手架工具
2. vue-cli的github地址:GitHub - vuejs/vue-cli at v2
3. 创建项目命令
- npm install -g vue-cli:安装vue-cli脚手架
- vue init webpack vue_demo:使用webpack模板创建项目
- cd vue_demo:进入项目目录
- npm install:安装项目需要的依赖
- npm run dev:启动vue项目
4. 可以选择的项目模板
5. 项目目录结构
- build : webpack 相关的配置文件夹(基本不需要修改)
- dev-server.js : 通过 express 启动后台服务器
- config: webpack 相关的配置文件夹(基本不需要修改)
- index.js: 指定的后台服务的端口号和静态资源文件夹
- node_modules:依赖包
- src : 源码文件夹
- components: vue 组件及其相关资源文件夹
- App.vue: 应用根主组件
- main.js: 应用入口 js
- static: 静态资源文件夹
- .babelrc: babel 的配置文件
- .eslintignore: eslint 检查忽略的配置
- .eslintrc.js: eslint 检查的配置
- .gitignore: git 版本管制忽略的配置
- index.html: 主页面文件
- package.json: 应用包配置文件
- README.md: 应用描述说明的 readme 文件
6. 项目发布运行
- 静态服务器(serve)
npm install -g serve
serve dist(dist是打包生成的文件夹)
访问: http://localhost:5000
- 动态web服务器(tomcat)
修改配置: webpack.prod.conf.js
output: {
publicPath: '/xxx/' //打包文件夹的名称
}
重新打包:
npm run build
修改 dist 文件夹为项目名称: xxx
将 xxx 拷贝到运行的 tomcat 的 webapps 目录下
访问: http://localhost:8080/xxx
Eslint工具
1. ESLint是一个代码规范检查工具,它定义了很多特定的规则,一旦你的代码违背了某一规则,eslint会作出非常有用的提示。
2. ESLint 提供以下几种校验
- 语法错误校验
- 不重要或丢失的标点符号, 如分号
- 没法运行到的代码块(使用过 WebStorm 的童鞋应该了解)
- 未被使用的参数提醒
- 确保样式的统一规则, 如 sass 或者 less
- 检查变量的命名
3. 错误等级
- 0: 关闭规则。
- 1: 打开规则, 并且作为一个警告(信息打印黄色字体)
- 2: 打开规则, 并且作为一个错误(信息打印红色字体
4. 相关配置文件
- .eslintrc.js : 全局规则配置文件
'rules': {
'no-new': 1
}
- 在 js/vue 文件中修改局部规则
/* eslint-disable no-new */
new Vue({
el: 'body',
components: { App }
})
- .eslintignore: 指令检查忽略的文件
*.js
*.vue
组件的使用
1. 组件是什么?
- 组件是可复用的 Vue 实例,且带有一个名字。
- 与 new Vue 接收相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。
- 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块
2. 组件化与模块化
- 组件化: 从UI界面的角度进行划分的,前端的组件化,方便UI组件的重用
- 模块化: 从代码逻辑的角度进行划分的,方便代码分层开发,保证每个功能模块的职能单一
3. 组件命名方式
- kebab-case(短横线命名):Vue.component('my-component-name', { /* ... */ })
- PascalCase(帕斯卡命名法):Vue.component('MyComponentName', { /* ... */ })
- 当使用 PascalCase (首字母大写命名) 定义一个组件时,你在引用这个自定义元素时两种命名法都可以使用。也就是说 <my-component-name> 和 <MyComponentName> 都是可接受的。
- 注意,直接在 DOM (即非字符串的模板) 中使用时只有 kebab-case 是有效的。
- 例如字符串模板中{{ }}语法中不能是短横线连接方式。此处只能是驼峰命名方式。若为短横线的命名方式,则会报错NAN。
4. 字符串模板和dom模板的区别
- 字符串模板是放在script标签里,js 的字符串里,原先不参与页面渲染的一串字符
- dom模板是原先就写在页面上的,能被浏览器识别的 html 结构,会在一加载就被浏览器渲染
5. 全局注册组件
- 全局注册的行为必须在根 Vue 实例 (通过 new Vue) 创建之前发生。
Vue.component('my-component-name', {
// ... 选项 ...
})
6. 局部注册组件
var ComponentA = { /* ... */ }
var ComponentB = { /* ... */ }
new Vue({
el: '#app',
components: {
'component-a': ComponentA,
'component-b': ComponentB
}
})
- 局部注册的组件在其子组件中不可用。例如,如果你希望 ComponentA 在 ComponentB 中可用,则需要这样写:
var ComponentA = { /* ... */ }
var ComponentB = {
components: {
'component-a': ComponentA
},
// ...
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献3条内容
所有评论(0)