当前位置: 首页 > Web前端 > vue.js

vue项目入门,含vue全家桶教程

时间:2023-04-01 10:31:33 vue.js

搭建vue项目项目从vue-cli入手,含全家桶(vue-cli+vue3.0+vuex+vue-router+axios+element-ui),包括自定义方法等,Laity将在本文中展示详细过程。我将新创建的项目放入我的库中。如果需要,可以chttps://github.com/webwjg/newVue.git1。下载vue-cli,在命令窗口输入(shift+右键):npminstall-g@vue/cli稍等片刻,然后开始在你想要的目录下创建vue项目,或者在命令窗口输入:vuecreateyounameyouName是你自己定义的项目名(不能有大写字母),然后会出现default,Manuallyselectfeatures是手动设置,我选择手动设置,键盘上下键可以选择,空格栏是确认选择。这个是我选的,看个人需要,然后①。选择ESLint+PrettierESLintwitherrorpreventiononlyESLint+AirbnbconfigESLint+StandardconfigESLint+Prettier选择ESLint+Prettier。②.选择语法检查方法,>toinvertselection)>(*)Lintonsave//checkonsave()Lintandfixoncommit//fixandcommitsavehereselectsaveandcheck。③.配置文件存储位置你更喜欢把Babel、ESLint等的配置放在哪里?Indedicatedconfigfiles//独立文件放置Inpackage.json//Inpackage.json我这里选择Inpackage.json。在那之后,你可以一直继续下去。给大家展示一下我的项目结构:组件是主页面,视图写子组件。2.配置首先下载你需要的,因为你在创建项目的时候已经下载了vue-router和vuex,你只需要下载axiosnpminstallaxios下载成功,刷新package.json,会有版本信息注意,当你定义了一个变量或者组件,但是如果你不使用它,就会报错。我们需要修改配置,在package.json的"rules"中添加"vue/no-unused-components":"off","no-unused-vars"":[0,{"vars":"all","args":"after-used"}]①.vue-router新建一个组件,然后到router下的index.js中去注册!【这里插入图片描述】(//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/438175658d3f410e9ed3aa6a314e8249~tplv-k3u1fbpfcp-zoom-1.image)注意配置中path的值是自定义的,可以和导入的名称不同,但是是名称和组件最好和导入时的名称保持一致路由参数//跳转参数this.$router.push({path:'/model',query:{page:'1',code:'6666'}});//model组件接收this.$route.query.codethis.$route.query.page②.vuex项目中第一个store是vuex,在创建项目的时候已经自动配置好了,所以我们可以使用它直接。教你粗略的使用vuex,看一个简单的存储数组exportdefaultnewVuex.Store({state:{myarr:[],},mutations:{storeArr(state,myarr){//state就是上面的状态,myarr是来自component.myarr=myarr;},},actions:{},modules:{}})组件中的状态:数据数组);},这只使用同步的突变。如果你想异步执行它们,你必须使用动作。在组件中:exportdefault{name:'HelloWorld',props:{msg:String},data(){return{userPhone:'19999999999',}},methods:{storePhone:function(){this.$store.dispatch("asyncStore",this.userPhone)},}}如果想获取state中的值,可以使用this.$store.state.phone;③.axiosaxios默认为application/json。如果使用这种编码方式,会把序列化后的json串传给后台,而我们发送的格式不是对象,这是很不对的。舒服的。让我告诉你我的愚蠢方法,从main.js中的'axios'导入axiosaxios.defaults.transformRequest=[function(data){letobj=''for(letitemindata){obj+=encodeURIComponent(item)+'='+encodeURIComponent(data[item])+'&'}returnobj}]Vue.prototype.$axios=axios发送请求:letdata={a:1,b:2};this.$axios.post('/url',data).then((res)=>{console.log(res)})这个符合我的使用习惯。⑤.element-ui第一步当然是下载npminstallelement-ui,没错,卸载就是把install改成uninstall然后到main.js中引入importElementUIfrom'element-ui';Vue.use(ElementUI);使用的可以到官网去c代码,放到自己的项目中。示例:取消地址:https://element.eleme。cn/#/zh-CN/component/dialog④.我的自定义方法是在组件(util)的同一级别创建一个新文件夹(util)。util中的util.js就是写方法的地方。导出默认值{myutil:function(val){console.log(val);},}在main.js中引入(全局),也可以在你使用importutilfrom'./util/util.js'Vue.prototype.util=util;的组件中单独引入;在组件中调用:this.util.myutil(666);最后,vue中一些有用的小知识1.通过ref操作子组件的事件,传值,{this.$refs.openModel.openValue(true)//methodpassvalue,}subcomponentprops:{//value通过propreceivedata:Object,},methods:{//refopenValue(val){this.dialogVisible=val;},}2。修改父组件或根组件数据的值this.$parent.isOpen=false;//修改父组件的数据this.$root.isOpen=真;//修改根组件3.保存vuex的状态,使其刷新后不会消失if(sessionStorage.getItem("store")){this.$store.replaceState(Object.assign({},this.$store.state,JSON.parse(sessionStorage.getItem("store"))))}window.addEventListener("pagehide",()=>{sessionStorage.setItem("store",JSON.stringify(this.$store.state))})如有不妥之处欢迎指正0k,本文到此结束。最后提醒,请看我的昵称