Observed since 20 Oct, 18:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
14_vue_component
A Vue.js project
1.单文件组件 1.三个部分组成 1.template 只能存在一个根元素 2.script 3.style scoped: 样式只在当前组件内生效 2.子父级组件交互(通信) 父->子: props 数据传递类型限制(验证) 数据类型验证 多数据类型验证 必选项 默认值 obj、arr数据类型的默认值(返回Object) 子->父: emit Event 3.插槽 单个插槽 具名插槽 作用域插槽(子传父) 注意:在2.5.0之前,必须使用在template上 4.动态组件 keep-alive 2.css过度与动画 在CSS 过渡和动画中自动应用 过渡类名 v-enter:进入开始 v-enter-active;执行过程中 v-enter-to:结束动画 v-leave:离开开始 v-leave-active:离开过程 v-leave-to:离开结束 class可以配合使用第三方css动画库,如Animate.css
3.自定义指令 全局指令 Vue.directive('focus',{ inserted: function(el){ el.focus(); } }) 局部指令 directives:{ focus:{ inserted: function(el){ el.focus(); } } } Axios 1.安装 npm install axios 2.引入加载 import Axios from 'axios' Vue.prototype.$axios = Axios 3.请求 get请求: this.$axios("http://localhost:8080/static/mock/data.json",{ params:{ type:"junshi" } }).then(res=>{ console.log(res) }).catch(error=>{ console.log(error) }) psot请求: form-data: ?userId=admin&password=123 x-www-from-urlencoded:{userId: "admin",password: 123} 注意:axios接受的post请求的格式是from-data格式 this.$axios.post("http://localhost:8080/login", qs.stringify({ user_id:"admin", password: 123 })).then(res=>{ console.log(res) }).catch(error=>{ console.log(error) }) 4.全局的axios默认值 Axios.defaults.baseURL = 'http://localhost:8080'; Axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'; 5.拦截器 在请求then或catch处理前拦截它们
6.跨域处理
1.修改config中的 index.js
proxyTable: {
"/api": {
target: "http://localhost:8080",
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
},
2. mian.js 中添加HOST
Vue.prototype.HOST = '/api'
3.使用
this.$axios.pos t( this.HOST + "/login",
{
userId: 'admin',
password: '123456'
}
).then(res=>{
console.log(res)
}).catch(error=>{
console.log(error)
});
注意: 此种跨域解决方案,只能适用于测试阶段,打包的时候,不会具备服务
不能跨域了,后端解决
Mock: 数据模拟 1.自己创建JSON文件。使用get请求形式访问数据 优点: 方便快捷 缺点:只能存在get请求 2.项目中集成服务器,模拟各种接口 优点:模拟真实显示环境 缺点:泽恩加开发成本 3.直接使用线上数据 优点:真实 缺点:不一定每个项目都存在 4.数据模拟库moackjs
路由 1.安装 npm install vue-router 2.引用 import VueRouter from 'vue-router' Vue.use(VueRouter); 3.路由嵌套 1.children 2.也要给显示位置(router-view)
ElementUI 1.安装element-ui npm i element-ui -S 2.安装按需加载的依赖 npm install babel-plugin-component -D 3.修改 .babelrc { "presets": [ ["env", { "modules": false, "targets": { "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] } }], "stage-2" ], "plugins": ["transform-vue-jsx", "transform-runtime",[ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ]] } 4.引入组件 import { Button, Select } from 'element-ui'; Vue.use(Button) Vue.use(Select) 5.使用element-ui VueX Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
开发大型单页面应用时使用
VueX状态管理
view->(dispatch)Action->(Commit) Mutations->(Mutate)State->View
注意:Action不是必需品,如果有异步操作才可能用到,否则跨域不使用
使用
1.安装
npm install vuex --save
2.引入依赖
import Vuex from 'vuex'
Vue.use(Vuex)
3.创建 store 仓库
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++;
},
desment(state){
state.count--;
}
},
actions:{
incrementA(context){
context.commit("increment");
},
desmentA(context){
context.commit("desment");
}
}
})
4.使用
获取数据
this.$store.state.count
调用 mutations 方法
this.$store.commit('increment');
调用 actions
this.$store.dispatch("incrementA");
注意:
Action 提交的是 mutation. 而不是直接改变状态
Action 可以包含任意异步操作
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
axiosEnvironment{
"local_name": "axios",
"alias": false,
"peer_metadata": null
} | ^0.21.0 | runtime |
element-uiEnvironment{
"local_name": "element-ui",
"alias": false,
"peer_metadata": null
} | ^2.14.0 | runtime |
vueEnvironment{
"local_name": "vue",
"alias": false,
"peer_metadata": null
} | ^2.5.2 | runtime |
vue-routerEnvironment{
"local_name": "vue-router",
"alias": false,
"peer_metadata": null
} | ^3.4.9 | runtime |
vuexEnvironment{
"local_name": "vuex",
"alias": false,
"peer_metadata": null
} | ^3.5.1 | runtime |
autoprefixerEnvironment{
"local_name": "autoprefixer",
"alias": false,
"peer_metadata": null
} | ^7.1.2 | development |
babel-coreEnvironment{
"local_name": "babel-core",
"alias": false,
"peer_metadata": null
} | ^6.22.1 | development |
babel-helper-vue-jsx-merge-propsEnvironment{
"local_name": "babel-helper-vue-jsx-merge-props",
"alias": false,
"peer_metadata": null
} | ^2.0.3 | development |
babel-loaderEnvironment{
"local_name": "babel-loader",
"alias": false,
"peer_metadata": null
} | ^7.1.1 | development |
babel-plugin-componentEnvironment{
"local_name": "babel-plugin-component",
"alias": false,
"peer_metadata": null
} | ^1.1.1 | development |
babel-plugin-syntax-jsxEnvironment{
"local_name": "babel-plugin-syntax-jsx",
"alias": false,
"peer_metadata": null
} | ^6.18.0 | development |
babel-plugin-transform-runtimeEnvironment{
"local_name": "babel-plugin-transform-runtime",
"alias": false,
"peer_metadata": null
} | ^6.22.0 | development |
babel-plugin-transform-vue-jsxEnvironment{
"local_name": "babel-plugin-transform-vue-jsx",
"alias": false,
"peer_metadata": null
} | ^3.5.0 | development |
babel-preset-envEnvironment{
"local_name": "babel-preset-env",
"alias": false,
"peer_metadata": null
} | ^1.3.2 | development |
babel-preset-stage-2Environment{
"local_name": "babel-preset-stage-2",
"alias": false,
"peer_metadata": null
} | ^6.22.0 | development |
chalkEnvironment{
"local_name": "chalk",
"alias": false,
"peer_metadata": null
} | ^2.0.1 | development |
copy-webpack-pluginEnvironment{
"local_name": "copy-webpack-plugin",
"alias": false,
"peer_metadata": null
} | ^4.0.1 | development |
css-loaderEnvironment{
"local_name": "css-loader",
"alias": false,
"peer_metadata": null
} | ^0.28.0 | development |
extract-text-webpack-pluginEnvironment{
"local_name": "extract-text-webpack-plugin",
"alias": false,
"peer_metadata": null
} | ^3.0.0 | development |
file-loaderEnvironment{
"local_name": "file-loader",
"alias": false,
"peer_metadata": null
} | ^1.1.4 | development |
friendly-errors-webpack-pluginEnvironment{
"local_name": "friendly-errors-webpack-plugin",
"alias": false,
"peer_metadata": null
} | ^1.6.1 | development |
html-webpack-pluginEnvironment{
"local_name": "html-webpack-plugin",
"alias": false,
"peer_metadata": null
} | ^2.30.1 | development |
node-notifierEnvironment{
"local_name": "node-notifier",
"alias": false,
"peer_metadata": null
} | ^5.1.2 | development |
optimize-css-assets-webpack-pluginEnvironment{
"local_name": "optimize-css-assets-webpack-plugin",
"alias": false,
"peer_metadata": null
} | ^3.2.0 | development |
oraEnvironment{
"local_name": "ora",
"alias": false,
"peer_metadata": null
} | ^1.2.0 | development |
portfinderEnvironment{
"local_name": "portfinder",
"alias": false,
"peer_metadata": null
} | ^1.0.13 | development |
postcss-importEnvironment{
"local_name": "postcss-import",
"alias": false,
"peer_metadata": null
} | ^11.0.0 | development |
postcss-loaderEnvironment{
"local_name": "postcss-loader",
"alias": false,
"peer_metadata": null
} | ^2.0.8 | development |
postcss-urlEnvironment{
"local_name": "postcss-url",
"alias": false,
"peer_metadata": null
} | ^7.2.1 | development |
rimrafEnvironment{
"local_name": "rimraf",
"alias": false,
"peer_metadata": null
} | ^2.6.0 | development |
semverEnvironment{
"local_name": "semver",
"alias": false,
"peer_metadata": null
} | ^5.3.0 | development |
shelljsEnvironment{
"local_name": "shelljs",
"alias": false,
"peer_metadata": null
} | ^0.7.6 | development |
uglifyjs-webpack-pluginEnvironment{
"local_name": "uglifyjs-webpack-plugin",
"alias": false,
"peer_metadata": null
} | ^1.1.1 | development |
url-loaderEnvironment{
"local_name": "url-loader",
"alias": false,
"peer_metadata": null
} | ^0.5.8 | development |
vue-loaderEnvironment{
"local_name": "vue-loader",
"alias": false,
"peer_metadata": null
} | ^13.3.0 | development |
vue-style-loaderEnvironment{
"local_name": "vue-style-loader",
"alias": false,
"peer_metadata": null
} | ^3.0.1 | development |
vue-template-compilerEnvironment{
"local_name": "vue-template-compiler",
"alias": false,
"peer_metadata": null
} | ^2.5.2 | development |
webpackEnvironment{
"local_name": "webpack",
"alias": false,
"peer_metadata": null
} | ^3.6.0 | development |
webpack-bundle-analyzerEnvironment{
"local_name": "webpack-bundle-analyzer",
"alias": false,
"peer_metadata": null
} | ^2.9.0 | development |
webpack-dev-serverEnvironment{
"local_name": "webpack-dev-server",
"alias": false,
"peer_metadata": null
} | ^2.9.1 | development |
webpack-mergeEnvironment{
"local_name": "webpack-merge",
"alias": false,
"peer_metadata": null
} | ^4.1.0 | development |
Source distribution
{
"integrity": "sha512-KxsRAz/TrP3jynF+Wp3Zx1Anrfw89hWIIz+5YZXQg6bVC69f18SkJMbT+luFpPRO+YcIFjIZ5vR8Lt2zIO5hVg==",
"shasum": "5263e60229bba9535991d4ca305f4f39eac64528",
"tarball": "https://registry.npmjs.org/14_vue_component/-/14_vue_component-1.0.0.tgz",
"fileCount": 41,
"unpackedSize": 1825511,
"npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfphBtCRA9TVsSAnZWagAAz5gP/ioGM5REKSnl6LqpWKda\nu0AfL2m38wPMWllMRuEgXH0cG/MC/4t69sbLsqFRhec9Lx4MP8usuemAoO26\nOrTFBPUdfWeJPOtuB4Jo+LZfYMJaLoxZPkORF1GcHx8sNyCaH1mQ06JN9mMX\nEElfiIopIYCTVmkzdFzdeySqpZDJJ7+UEOR+90l5/K237d/tkvETLeBibivD\nVRi7pbDUcafiQ9SAmL0JpUO11q3kDgQggks6V/szjB02J5Jmy4v6S16r08Rs\nXLzi2e6AvXwypixHt8ybeFy5uTnGtwbaEk+OnROWj8E/27JxP2uXJIkFgKdL\nISprtpSFyWiBSf8h3wFs1rR5S0tDLle00wEsOqXSWLuFU3Qgv5kQSqtvn1Wx\n76CEgrgXDPu16ZzDp7Rz+Wdg9XR5tViouGjPypX/9AHUoqnDHLkR7r5cFtIv\nJ271n1t+/Gwdc9LePiHgy0puxQAfzBA0xXabneKL0q8AaZETrqRG2o6ko9bf\nrqkzdPxae8xFzUqEo22J7FkZ8jIOahQjMCaPeZ/T9kew3/UMo1DUVbhxoOd/\n/JEp05XHRmokdfrA0eapOQZB5HuN4qLVGrj3T8gm18v+dzoU5S2H13AK8tBe\nijH+OSkU0i/3PTCC/kcW7nDYdbJRkkedzd90mXkATvg7v4G/z5wMXE1lCuzg\nnYbI\r\n=PrsC\r\n-----END PGP SIGNATURE-----\r\n",
"signatures": [
{
"keyid": "SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA",
"sig": "MEUCIQCQ1P9xERB+uiHvohoFEh4PcDr/e0NfuEFKj268AHGUCgIgSKovn8XBL6qX58Hp/FdIj6ne8SoJsmY7M9r1vgH+8o0="
}
]
}Observed since 20 Oct, 18:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:04f7446fe6b9bc90756480ca204699ba443c00c8be1157367da77c5a986830c1