<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_41962068的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41962068</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41962068]]></copyright><item><title><![CDATA[测试用例评审及如何做好测试用例评审]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/123200361</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/123200361</guid><author>qq_41962068</author><pubDate>Tue, 01 Mar 2022 10:44:54 +0800</pubDate><description><![CDATA[测试用例评审及如何做好测试用例评审
什么是测试用例评审？测试用例评审是通过测试人员组织用例评审会议，邀约项目相关人员，主要包括产品，开发及测试三方，对测试人员设计的测试用例的可执行性和全面性进行评估，同时消除各方对需求文档理解的偏差达到对需求理解的一致。
测试用例评审是测试流程中极为关键的一环，用例评审何为如此重要？首先，通过测试用例的评审不仅可以消除产品、开发、测试三方对需求文档理解的偏差，还可以保证测试内部人员，即测试执行者和测试用例设计者在测试质量保障方面保持一致性；其次，通过测试用例评审，产品和开发]]></description><category></category></item><item><title><![CDATA[Vue ----  props验证和特性]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108998905</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108998905</guid><author>qq_41962068</author><pubDate>Sat, 10 Oct 2020 16:01:08 +0800</pubDate><description><![CDATA[组件_Prop
注册自定义特性
组件默认只是写好结构、样式和行为，使用的数据应由外界传递给组件。

如何传递？注册需要接收的prop，将数据作为一个自定义特性传递给组件。

如：
&lt;div id="app"&gt;
  &lt;video-item 
    title="羊村摇" 
    poster="https://developer.duyiedu.com/bz/video/955bac93ccb7f240d25a79b2ff6a9fdbda9537bc.jpg@320w_200h.webp]]></description><category></category></item><item><title><![CDATA[Vue -------组件基础了解]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108998858</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108998858</guid><author>qq_41962068</author><pubDate>Sat, 10 Oct 2020 15:59:28 +0800</pubDate><description><![CDATA[# 组件基础

组件是什么？
组件是可复用的Vue实例，且带有一个名字，例如名字为shanshan-cmp，那么我们则可以在一个通过new Vue创建的根实例中，把这个组件作为自定义元素来使用：
&lt;div id="app"&gt;
  &lt;shanshan-cmp&gt;&lt;/shanshan-cmp&gt;
&lt;/div&gt;

const vm = new Vue({
  el: '#app'
})

因为组件是可复用的 Vue 实例，所以它们与 new Vue 接收相同的选项，例如]]></description><category></category></item><item><title><![CDATA[Vue   ------  生命周期，执行钩子函数详解]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108941392</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108941392</guid><author>qq_41962068</author><pubDate>Tue, 06 Oct 2020 17:26:35 +0800</pubDate><description><![CDATA[Vue生命周期
每个 Vue 实例在被创建时都要经过一系列的初始化过程，例如，需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数，这给了用户在不同阶段添加自己的代码的机会。
生命周期图示

生命周期钩子
所有的生命周期钩子自动绑定 this 上下文到实例中，因此你可以访问数据，对属性和方法进行运算

beforeCreate
在实例初始化之后，数据观测 (data observer) 和 event/watcher 事件配置之]]></description><category></category></item><item><title><![CDATA[Vue-------axios 请求   详解]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108912724</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108912724</guid><author>qq_41962068</author><pubDate>Sat, 03 Oct 2020 19:46:03 +0800</pubDate><description><![CDATA[Axios
Axios是一个基于promise的HTTP库
浏览器支持情况：Chrome、Firefox、Safari、Opera、Edge、IE8+
引入
&lt;script src="https://unpkg.com/axios/dist/axios.min.js"&gt;&lt;/script&gt;

API

axios(config)
axios(url, [config])

config 配置对象
最常用的配置：
axios({
  method: 'get', // post、get、]]></description><category></category></item><item><title><![CDATA[Vue --- vue-resource]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108912629</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108912629</guid><author>qq_41962068</author><pubDate>Sat, 03 Oct 2020 19:35:34 +0800</pubDate><description><![CDATA[vue-resource
在Vue中实现异步加载需要使用到vue-resource库，利用该库发送ajax。
引入vue-resource
&lt;script src="https://cdn.jsdelivr.net/npm/vue-resource@1.5.1"&gt;&lt;/script&gt;

要注意的是，vue-resource依赖于Vue，所以要先引入Vue，再引入vue-resource。
引入vue-resource之后，在Vue的全局上会挂载一个$http方法，在vm.$http方法]]></description><category></category></item><item><title><![CDATA[Vue ---  侦听器详解]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108912613</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108912613</guid><author>qq_41962068</author><pubDate>Sat, 03 Oct 2020 19:33:05 +0800</pubDate><description><![CDATA[侦听器
侦听属性，响应数据（data&amp;computed）的变化，当数据变化时，会立刻执行对应函数，
值类型
函数类型
例：
const vm = new Vue({
  el: '#app',
  data: {
    msg: 'hello，你好呀，我是杉杉',
  },
  watch: {
    msg () {
      console.log('msg的值改变啦~');
    }
  }
})
// 更改msg的值
vm.msg = 'hello~~~~'; // 此时会在控制台中]]></description><category></category></item><item><title><![CDATA[Vue --- 计算属性 详解剖析]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108845748</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108845748</guid><author>qq_41962068</author><pubDate>Mon, 28 Sep 2020 11:02:24 +0800</pubDate><description><![CDATA[计算属性
有些时候，我们在模板中放入了过多的逻辑，从而导致模板过重，且难以维护。例如：
&lt;div id="app"&gt;
  {{ message.split('').reverse().join('') }}
&lt;/div&gt;

碰到这样的情况，我们必须看一段时间才能意识到，这里是想要显示变量message的翻转字符串，而且，一旦我们想要在模板中多次使用翻转字符串时，会更加麻烦。
所以，当我们处理复杂逻辑时，都应该使用计算属性。
基础用法
计算属性是Vue配置对象中的属性，使用方式如下：
]]></description><category></category></item><item><title><![CDATA[Vue-----列表渲染命令]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108741126</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108741126</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 21:02:22 +0800</pubDate><description><![CDATA[列表渲染
利用v-for指令，基于数据多次渲染元素。
在v-for中使用数组
用法：(item, index) in items
参数：items: 源数据数组
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;item：数组元素别名
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index：可选，索引
可以访问所有父作用域的属性
&lt;u]]></description><category></category></item><item><title><![CDATA[Vue学习-———on指令及修饰符]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108739564</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108739564</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 19:51:03 +0800</pubDate><description><![CDATA[v-on指令的修饰符
事件修饰符
.stop

调用 event.stop，阻止事件冒泡&lt;!-- 此时只弹出button --&gt;
&lt;div id="app"&gt;
  &lt;div @click="alert('div')"&gt;
    &lt;button @click.stop="alert('button')"&gt;点击&lt;/button&gt;
  &lt;/div&gt;
&lt;/div&gt;

const vm = new Vue({
  el: '#app']]></description><category></category></item><item><title><![CDATA[Vue------------ bind指令学习]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108737433</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108737433</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 17:44:14 +0800</pubDate><description><![CDATA[v-bind 指令


动态地绑定一个或多个特性


:后的为传递的参数
&lt;!-- 绑定一个属性 --&gt;
&lt;img v-bind:src="imageSrc"&gt;

&lt;!-- 动态特性名 (2.6.0+) --&gt;
&lt;button v-bind:[key]="value"&gt;&lt;/button&gt;

&lt;!-- 缩写 --&gt;
&lt;img :src="imageSrc"&gt;

&lt;!-- 动态特性名缩写 (2.6.0+) --&gt;
&]]></description><category></category></item><item><title><![CDATA[vue=====条件指令学习]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108732880</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108732880</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 15:14:00 +0800</pubDate><description><![CDATA[条件渲染
v-if

用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。


切换多个元素


因为 v-if 是一个指令，所以必须将它添加到一个元素上，但是如果想切换多个元素呢？此时可以把一个 &lt;template&gt;元素当做不可见的包裹元素，并在上面使用 v-if。最终的渲染结果将不包含 &lt;template&gt;元素&lt;template v-if="ok"&gt;
  &lt;h1&gt;Title&lt;/h1&gt;
  &lt;p&gt;P]]></description><category></category></item><item><title><![CDATA[Vue学习=== vue的指令]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108728191</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108728191</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 11:48:59 +0800</pubDate><description><![CDATA[Vue相关指令

具有特殊含义、拥有特殊功能的特性
指令带有v-前缀，表示它们是Vue提供的特殊特性
指令可以直接使用data中的数据

v-pre

跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。&lt;!-- 不会被编译 --&gt;
&lt;span v-pre&gt;{{ msg }}&lt;/span&gt;



v-cloak


这个指令保持在元素上直到关联实例结束编译


可以解决闪烁的问题


和 CSS 规则如 [v-c]]></description><category></category></item><item><title><![CDATA[vue ---剖析vue的响应式原理]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108727019</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108727019</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 11:08:47 +0800</pubDate><description><![CDATA[扩展_剖析Vue响应式原理
const data = {
  name: 'shanshan',
  age: 18,
  shan: {
    name: 'shanshan',
    age: 18,
    obj: {}
  },
  arr: [1, 2, 3]
}

const arrayProto = Array.prototype;
const arrayMethods = Object.create(arrayProto);
['push', 'pop', 'shift', 'unsh]]></description><category></category></item><item><title><![CDATA[vue 学习----响应式2]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108726296</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108726296</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 10:45:24 +0800</pubDate><description><![CDATA[问：要如何响应式的更新数组和对象？

更改数组： 1. 利用数组变异方法：push、pop、shift、unshift、splice、sort、reverse  2. 利用vm.$set/Vue.set实例方法3. 利用vm.$set或Vue.set删除数组中的某一项


vm.$set是Vue.set的别名使用方法：Vue.set(object, propertyName, value)，也就是这个意思：Vue.set(要改谁，改它的什么，改成啥)


vm.$delete是Vue.delete的别名..]]></description><category></category></item><item><title><![CDATA[vue学习 ---   vue的响应式1]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108725426</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108725426</guid><author>qq_41962068</author><pubDate>Tue, 22 Sep 2020 10:14:54 +0800</pubDate><description><![CDATA[&lt;!--
 * @Description: 
 * @Version: 2.0
 * @Autor: Ricardo
 * @Date: 2020-09-21 15:39:58
 * @LastEditors: Seven
 * @LastEditTime: 2020-09-22 10:12:38
--&gt;
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
   .]]></description><category></category></item><item><title><![CDATA[vue ---初步了解和学习]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108717155</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108717155</guid><author>qq_41962068</author><pubDate>Mon, 21 Sep 2020 19:36:31 +0800</pubDate><description><![CDATA[开始使用Vue


引入vue.js

官网：vuejs.org


开发版本：包含完整的警告和调试模式


生产版本：删除了警告，体积更小



引入vue.js后，给我们提供了一个构造函数 Vue


在js中，new Vue()


new Vue() 后会返回一个vue实例对象，我们用变量接着它


const vm = new Vue()


传递一个配置对象{} – &gt; const vm = new Vue({})


el

类型： 字符串


全称：element（元素）


作用：配]]></description><category></category></item><item><title><![CDATA[Webpack ---其他项配置]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108686281</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108686281</guid><author>qq_41962068</author><pubDate>Sat, 19 Sep 2020 21:39:06 +0800</pubDate><description><![CDATA[其他细节配置 {ignore}
文章目录其他细节配置 {ignore}contextoutputlibrarylibraryTargettargetmodule.noParseresolvemodulesextensionsaliasexternalsstats
context
context: path.resolve(__dirname, "app")

该配置会影响入口和loaders的解析，入口和loaders的相对路径会以context的配置作为基准路径，这样，你的配置会独立于CWD（curren]]></description><category></category></item><item><title><![CDATA[webpack --- plugins 插件]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108685640</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108685640</guid><author>qq_41962068</author><pubDate>Sat, 19 Sep 2020 20:40:42 +0800</pubDate><description><![CDATA[plugin
loader的功能定位是转换代码，而一些其他的操作难以使用loader完成，比如：

当webpack生成文件时，顺便多生成一个说明描述文件
当webpack编译启动时，控制台输出一句话表示webpack启动了
当xxxx时，xxxx

这种类似的功能需要把功能嵌入到webpack的编译流程中，而这种事情的实现是依托于plugin的

plugin的本质是一个带有apply方法的对象
var plugin = {
    apply: function(compiler){
        
]]></description><category></category></item><item><title><![CDATA[webpack --- 两大插件之Loader]]></title><link>https://blog.youkuaiyun.com/qq_41962068/article/details/108682378</link><guid>https://blog.youkuaiyun.com/qq_41962068/article/details/108682378</guid><author>qq_41962068</author><pubDate>Sat, 19 Sep 2020 16:08:16 +0800</pubDate><description><![CDATA[loader

webpack做的事情，仅仅是分析出各种模块的依赖关系，然后形成资源列表，最终打包生成到指定的文件中。
更多的功能需要借助webpack loaders和webpack plugins完成。

webpack loader： loader本质上是一个函数，它的作用是将某个源码字符串转换成另一个源码字符串返回。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e1vGZRHw-1600502783985)(assets/2020-01-13-10-39-24.pn]]></description><category></category></item></channel></rss>