课程笔记
  • 所属章节课程:Vue路由(一)02

    <p>$route 当前组件路由</p><p>$route.fullpath()</p><p>$route.path()</p><p>$route.query()<br/></p><p><br/></p><p>$router 全局组件路由</p><p>$router.path()</p><p>$router.push({path,query})</p><p>$router.go()</p><p><br/></p><p>topage(path:&#39;&#39;,query:{})</p>

    2023-08-110个赞

  • 所属章节课程:Vue路由(一)03

    <p><span style="font-size: 14px;">路径带参数</span></p><p><span style="font-size: 14px;">path:&#39;/home/:id&#39;</span></p><p><span style="font-size: 14px;">全局路由接收:$route.params.id</span></p><p><br/></p><p><br/></p>

    2023-08-110个赞

  • 所属章节课程:Vue路由(二)01

    <p><span style="font-size: 10px;">嵌套路由</span></p><p><span style="font-size: 10px;">{</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;path:&#39;/home&#39;,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;name:&#39;home&#39;,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;compnonet:Home,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;children:[</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path:&#39;order/:id&#39;,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&#39;order&#39;,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compnont:Order<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p><p style="text-wrap: wrap;"><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</span></p><p style="text-wrap: wrap;"><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;path:&#39;cart&#39;,<br/></span></p><p style="text-wrap: wrap;"><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name:&#39;cart&#39;,<br/></span></p><p style="text-wrap: wrap;"><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compnont:Cart<br/></span></p><p style="text-wrap: wrap;"><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]<br/></span></p><p><span style="font-size: 10px;">}<br/></span></p><p><span style="font-size: 10px;"><br/></span></p><p><span style="font-size: 10px;">选中状态</span></p><p><span style="font-size: 10px;">&lt;a :class=&quot;{active:$route.path==&#39;/home/order&#39;}&quot; href=&quot;/home/order&quot;&gt;我的订单&lt;/a&gt;</span></p><p><span style="font-size: 10px;"><span style="font-size: 10px; text-wrap: wrap;">&lt;a :class=&quot;{active:$route.path==&#39;/home/cart&#39;}&quot; href=&quot;/home/cart&quot;&gt;我的购物车&lt;/a&gt;</span></span></p><p><span style="font-size: 10px;"><span style="font-size: 10px; text-wrap: wrap;"><br/></span></span></p><p><span style="font-size: 10px;">&lt;style&gt;</span></p><p><span style="font-size: 10px;">.active{</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;color:red;<br/></span></p><p><span style="font-size: 10px;">}</span></p><p><span style="font-size: 10px;">&lt;/style&gt;</span></p>

    2023-08-110个赞

  • 所属章节课程:Vue路由(二)02

    <pre class="brush:js;toolbar:false">//隐藏图片 document.querySelector(&#39;.vb-a&#39;).style.display=&#39;none&#39;</pre><p>别名<span style="font-size: 10px;"></span><br/></p><p><span style="font-size: 10px;">{</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;path:&#39;/&#39;,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;name:&#39;home&#39;,</span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;component:Home,<br/></span></p><p><span style="font-size: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;alias:[&#39;/a&#39;,&#39;/b&#39;,&#39;/c&#39;]<br/></span></p><p><span style="font-size: 10px;">}</span></p><p><br/></p><p>导航守卫=》前置,后置</p><p><span style="font-size: 14px;">前置作用:跳转页面前,判断权限后跳转</span></p><p><span style="font-size: 14px;"><span style="text-wrap: wrap;"></span></span></p><pre class="brush:js;toolbar:false">router.beforeEach((to,from)=&gt;{ });</pre><p><span style="font-size: 14px;"><span style="text-wrap: wrap;"></span></span><br/></p><p>后置作用:优化</p><p><span style="font-size: 14px;"></span></p><pre class="brush:js;toolbar:false">router.afterEach((to,from)=&gt;{ })</pre><p><span style="font-size: 14px;"></span><br/></p><p><br/></p><p><br/></p>

    2023-08-110个赞

  • 所属章节课程:Vue路由(二)03

    <p>导航守卫</p><pre class="brush:js;toolbar:false">//路由页面设置meta信息,设置页面title const&nbsp;routes&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;path:&#39;/home&#39;, &nbsp;&nbsp;&nbsp;&nbsp;name:&#39;home&#39;, &nbsp;&nbsp;&nbsp;&nbsp;component:Home, &nbsp;&nbsp;&nbsp;&nbsp;meta:{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&#39;首页&#39; &nbsp;&nbsp;&nbsp;&nbsp;} } //路由设置后置守卫 router.beforeEach((to,from)=&gt;{ &nbsp;&nbsp;&nbsp;&nbsp;//console.log(to.path) }) router.afterEach((to,from)=&gt;{ &nbsp;&nbsp;&nbsp;&nbsp;//跳转前设置title &nbsp;&nbsp;&nbsp;&nbsp;document.title&nbsp;=&nbsp;to.meta.title })</pre><p><br/></p>

    2023-08-110个赞

  • 所属章节课程:状态管理(上)01

    <p><strong>Vuex 状态管理</strong></p><p><span style="font-size: 14px;">全局数据共享,用于多个页面级组件,不用反复请求,比如登录信息,购物车数量......</span></p>

    2023-08-110个赞

  • 所属章节课程:状态管理(上)02

    <p>vuex<br/></p><pre class="brush:js;toolbar:false">state&nbsp;相当于单个组件内的&nbsp;data getter&nbsp;相当于单个组件内的&nbsp;computed</pre><p><br/></p><pre class="brush:js;toolbar:false">//&nbsp;store/index.js下配置全局data数据 state:{ &nbsp;&nbsp;&nbsp;&nbsp;st_str:&#39;hello&#39;, &nbsp;&nbsp;&nbsp;&nbsp;st_num:100, &nbsp;&nbsp;&nbsp;&nbsp;st_arr:[1,2,3], &nbsp;&nbsp;&nbsp;&nbsp;st_obj:{name:&#39;张三&#39;,age:18}, &nbsp;&nbsp;&nbsp;&nbsp;st_flag:false }</pre><p>创建后,所有组件内this.$store都可以访问到数据,而且是响应式。<br/></p>

    2023-08-110个赞

  • 所属章节课程:状态管理(上)03

    <p>vuex 里面getters的方法</p><pre class="brush:js;toolbar:false">state:{ &nbsp;&nbsp;&nbsp;&nbsp;st_num:10, } //把state作为参数传入方法内 getters:{ &nbsp;&nbsp;&nbsp;&nbsp;st_num_pow(state){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;state.st_num&nbsp;*&nbsp;state.st_num &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>其他组件就使用vuex内getters的方法<br/></p><pre class="brush:js;toolbar:false">{{&nbsp;$store.getters.st_num_pow&nbsp;}}</pre><p><br/></p>

    2023-08-110个赞

  • 所属章节课程:状态管理(下)01

    <p><strong>vuex 里面的操作方法</strong></p><p><span style="font-size: 14px;">在mutations里添加</span></p><pre class="brush:js;toolbar:false">mutations{ &nbsp;&nbsp;&nbsp;&nbsp;mu_add(state,payload){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(payload.str) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;state.st_num+=payload.n &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p><span style="font-size: 14px;">组件使用 commit方法调用,commit()方法只能传2个参数,第一个为state</span><br/></p><pre class="brush:js;toolbar:false">$store.commit(&#39;mu_add&#39;)</pre><p><span style="font-size: 14px;">组件传参,只允许传2个参数,必须包含一个state,想要传多个,可以包装成对象形式</span></p><pre class="brush:js;toolbar:false">add(){ &nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;payload&nbsp;=&nbsp;{n:5,str:&#39;hello&#39;} &nbsp;&nbsp;&nbsp;&nbsp;this.$store.commit(&#39;mu_add&#39;,payload) }</pre><p><span style="font-size: 14px;"></span><br/></p>

    2023-08-120个赞

  • 所属章节课程:状态管理(下)02

    <p><strong>vuex&nbsp; actions的异步操作</strong></p><p><span style="font-size: 14px;">actions要最先处理,所以得操作所有的数据,里面的第一个参数,得包含state,getters,commit,第一个参数用context(上下文)</span><strong><br/></strong></p><pre class="brush:js;toolbar:false">actions:{ &nbsp;&nbsp;&nbsp;&nbsp;ac_add(context,payload){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.commit(&#39;mu_add&#39;,payload) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;comtext.getters.st_add_pow &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p><span style="font-size: 14px;">为了简便,context参数,可以直接解构成{state,commit,getters}</span><br/></p><pre class="brush:js;toolbar:false">actions:{ &nbsp;&nbsp;&nbsp;&nbsp;ac_add({state,commit,getters},padload){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;commit(&#39;mu_add&#39;,payload) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getters.st_add_pow &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p><span style="font-size: 14px;"></span><br/></p>

    2023-08-120个赞

  • 所属章节课程:状态管理(下)03

    <p><strong>模块化</strong></p><p>可以按功能创建多个js文件,默认导出</p><p>state.js,getters.js mutations.js actions.js moudle.js</p><pre class="brush:js;toolbar:false">//state.js export&nbsp;default&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;st_num&nbsp;:&nbsp;100 }</pre><p>在index.js导入<br/></p><pre class="brush:js;toolbar:false">//index.js import&nbsp;{createStore}&nbsp;from&nbsp;&#39;vuex&#39; import&nbsp;state&nbsp;from&nbsp;&#39;./state&#39; import&nbsp;getters&nbsp;from&nbsp;&#39;./getters&#39; import&nbsp;mutations&nbsp;from&nbsp;&#39;./mutations&#39; import&nbsp;actions&nbsp;from&nbsp;&#39;./actions&#39; import&nbsp;modules&nbsp;from&nbsp;&#39;./modules&#39; export&nbsp;default&nbsp;createStore({ &nbsp;&nbsp;&nbsp;&nbsp;state, &nbsp;&nbsp;&nbsp;&nbsp;getters, &nbsp;&nbsp;&nbsp;&nbsp;mutations, &nbsp;&nbsp;&nbsp;&nbsp;actions, &nbsp;&nbsp;&nbsp;&nbsp;modules })</pre><p><br/></p>

    2023-08-120个赞

  • 所属章节课程:组合式API(一)02

    <p><strong>组合式api</strong></p><p>setup()在beforecreate()创建实例之前就调用了,所以获取不到this</p><p><br/></p><p>同一个组件内,使用了setup()方法,还可以使用原有的结构,data(){},methods:{},可以共存,但不建议,使用起来混乱</p>

    2023-08-120个赞

  • 所属章节课程:组合式API(一)03

    <p>setup()方法里面的数据必须return出去,且必须是json格式的对象,界面才能获取到。不是响应式的。</p><pre class="brush:js;toolbar:false">setup(){ &nbsp;&nbsp;&nbsp;&nbsp;//let&nbsp;str&nbsp;=&nbsp;&#39;hello&#39; &nbsp;&nbsp;&nbsp;&nbsp;//let&nbsp;num&nbsp;=&nbsp;100 &nbsp;&nbsp;&nbsp;&nbsp;//const&nbsp;func&nbsp;=&nbsp;()=&gt;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(&#39;hello&#39;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num:100, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str:&#39;hello&#39;, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;func&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p>原来的data()方法,也是要return界面才能获取到。</p><pre class="brush:js;toolbar:false">data(){ &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;num:100, &nbsp;&nbsp;&nbsp;&nbsp;str:&#39;hello&#39; &nbsp;&nbsp;&nbsp;&nbsp;} }</pre><p><br/></p>

    2023-08-120个赞

  • 所属章节课程:组合式API(二)01

    <p>setup()的参数有两个:props,context</p><ul class=" list-paddingleft-2" style="list-style-type: disc;"><li><p>props为父组件传过来的属性的对象</p><p><br/></p></li><li><p>context内有 attrs,slots,emit方法</p></li></ul><ol class=" list-paddingleft-2" style="list-style-type: decimal;"><li><p><span style="font-size: 14px;">attrs为props中没有声明的其他属性对象,相当于this.$attrs</span></p></li><li><p><span style="font-size: 14px;">slots为插槽内容的对象,相当于this.$slots</span></p></li><li><p><span style="font-size: 14px;">emit为发送过来的自定义时间的函数,相当于this.$emit</span></p><p><span style="font-size: 14px;"></span></p></li></ol><p>接收的参数context可以解构出来想用的参数</p><pre class="brush:js;toolbar:false">setup(props,{emit,attrs}){ }</pre><p><br/></p>

    2023-08-120个赞