<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[NI_computer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/NI_computer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; NI_computer]]></copyright><item><title><![CDATA[vue3 element-ui 树选择单选]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/120201276</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/120201276</guid><author>NI_computer</author><pubDate>Thu, 09 Sep 2021 15:02:51 +0800</pubDate><description><![CDATA[1.取消父子结点关联
&lt;el-tree check-strictly :data="data" show-checkbox node-key="id" :props="defaultProps" ref="trees" @check="handleNodeClick" &gt;&lt;/el-tree&gt;
2.修改选中结点

在ts代码中写：
  const trees = ref(); //树形结构
  
   //选择节点时触发的函数
    const handleNodeClick =..]]></description><category></category></item><item><title><![CDATA[js 下载网络文件到本地，根据url下载文件，下载本地文件]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/117369179</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/117369179</guid><author>NI_computer</author><pubDate>Fri, 28 May 2021 17:33:18 +0800</pubDate><description><![CDATA[js下载网络文件到本地不建议使用a标签打开网页，不同浏览器会不兼容。下面介绍一个可以根据url下载文件到本地，并且自动生成随机名称的方法~
随机生成名称可以在统一页面多次导出文件且不会提示“文件已存”的情况，不需要的同学可以根据注释修改
// 文件下载，url为文件地址，可以为本地地址也可以为网络地址

function downloadFile(url) {
//   不需要随机生成名字的
//   let filename = `你的文件名字.文件格式`;

  // 生成一个随机名称
  let fi]]></description><category></category></item><item><title><![CDATA[git将已有文件上传远程仓库，转远程仓库]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/115343979</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/115343979</guid><author>NI_computer</author><pubDate>Wed, 31 Mar 2021 10:25:16 +0800</pubDate><description><![CDATA[当我们从别人的git仓库中下载代码并编辑后，想移植到自己的仓库怎么办？
1.右键文件夹选择git工具中的git bash here打开命令窗口。
2.查看本地文件关联的git
git remote -v

$ git remote -v
origin  https://git.gx.xxx/xxy/xxx.git (fetch)
origin  https://git.gx.xxx/xx/xxx.git (push)
3.删除本地仓库与远程仓库的关联
git remote remove origin

删除]]></description><category></category></item><item><title><![CDATA[微信小程序长按保存图片]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/115327874</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/115327874</guid><author>NI_computer</author><pubDate>Tue, 30 Mar 2021 15:51:21 +0800</pubDate><description><![CDATA[所用api

wx.getSetting
wx.authorize
wx.getImageInfo
wx.saveImageToPhotosAlbum




wx.wxml  src写你的图片地址，本地或者网络都可以

&lt;!--pages/save/save.wxml--&gt;
&lt;image src="/asset/u=1709216491,2536617744&amp;fm=26&amp;gp=0.png"  data-url="/asset/u=1709216491,2536617744]]></description><category></category></item><item><title><![CDATA[node.js （二）内置http模块，从req.url中获取请求参数]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109362820</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109362820</guid><author>NI_computer</author><pubDate>Thu, 29 Oct 2020 19:55:26 +0800</pubDate><description><![CDATA[http
Node内置的http模块功能使得它非常适合用来开发Web程序。与apache不同，apache为静态服务器，用于将浏览器端请求的静态资源返回。而http模块可以开发动态接口，用于处理前端业务，比如登录，注册，查询资讯信息等。
使用流程：

引入http模块
创建服务对象
在创建的服务对象中编写需要执行的操作代码
打开服务并对创建的服务对象进行监听或者其他操作

创建：http.Server
http.createServer()表示创建一个服务，该函数的返回值为http.Server的实例。
v]]></description><category></category></item><item><title><![CDATA[node.js(一)内置模块，url，querystring，buffer的简单使用]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109348801</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109348801</guid><author>NI_computer</author><pubDate>Thu, 29 Oct 2020 00:47:18 +0800</pubDate><description><![CDATA[url(需要手动引入）
url模块用于处理与解析URL。
常用方法：

parse(""):将字符串类型的url转换为对象
format({}):将对象转换为url
resolve(url1,url2):url字符串拼接

应用：
parse("")：将字符串类型的url转换为对象
当我们获取到了一个网络地址，需要将其拆分并获取其中的参数。这时候我们可以使用parse("")来进行一个解析。
var url = require("url");
//引入url模块
var path = "http://47.]]></description><category></category></item><item><title><![CDATA[微信小程序通过options页面传值，解决options获取数据undefined]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109314257</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109314257</guid><author>NI_computer</author><pubDate>Tue, 27 Oct 2020 16:54:43 +0800</pubDate><description><![CDATA[在微信小程序中页面跳转可以通过options来获取传过来的值。
跳转页面函数：
// 点击当前列表获取详情跳转
  detailHandler(event){
    
    var detailId = event.currentTarget.dataset.detailid;
    wx.navigateTo({
      url: '/pages/detail/detail?id='+detailId
    })
   

  },

这时我们传过去的数据可以在跳转页面接收，在onload函数]]></description><category></category></item><item><title><![CDATA[微信小程序，提示”getLocation需要在app.json中声明permission字段“，解决办法]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109274798</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109274798</guid><author>NI_computer</author><pubDate>Sun, 25 Oct 2020 16:04:54 +0800</pubDate><description><![CDATA[当我们在某个微信小程序上使用了getLocation方法之后发现点击触发事件按钮时，会出现提示
getLocation需要在app.json中声明permission字段
这是因为没有在全局配置app.json中声明permission字段。
解决方法：在app.json中添加代码
"permission": {

    "scope.userLocation": {
    
    "desc": "你的位置信息将用于小程序位置接口的效果展示"
    
    }
}

添加之后，再次点击就会弹出询]]></description><category></category></item><item><title><![CDATA[js,将两个数组连接的几种方法。]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109260250</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109260250</guid><author>NI_computer</author><pubDate>Sat, 24 Oct 2020 15:35:35 +0800</pubDate><description><![CDATA[1.使用concat,concat不会改变原数组，所以需要新定义一个变量来接收
var a = [1, 2, 3, 4, 5]
var b = [6, 7, 8, 9]

var c = a.concat(b);
console.log(c);

2.使用splice，splice中第一个数为插入的位置，第二个为要删除的项数，这里是插入所以是0，之后就写需要插入的数据。这里不能直接写入一个其他数组，否则就会出现数组里嵌套了一个数组。
//在a数组中插入1，2，3
var a = [1, 2, 3, 4, 5]]></description><category></category></item><item><title><![CDATA[vue,使用v-for循环加载子组件]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109259812</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109259812</guid><author>NI_computer</author><pubDate>Sat, 24 Oct 2020 15:17:22 +0800</pubDate><description><![CDATA[在项目开发中，通常我们需要在一个父页面中载入非常多的子页面，如果每个子页面都一一定义的话，会显得代码非常的冗余。这里我们可以通过v-for循环来实现一个加载子组件的方法。
1.在父组件中引入所有的子组件，并注册


2.在data中将子页面封装成一个数组
pages: [
        {
          name: "allOrder",
          label: "所有订单",
        },
        {
          name: "unpaid",
         ]]></description><category></category></item><item><title><![CDATA[Vue，简单的子组件向父组件传值。]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109228762</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109228762</guid><author>NI_computer</author><pubDate>Thu, 22 Oct 2020 19:39:07 +0800</pubDate><description><![CDATA[子组件通过发射事件$.emit给父组件，通知父组件数据改变，父组件通过@xxx监听
例子：
注册一个全局组件，和一个局部组件，将全局组件作为局部组件的子组件，并将全局组件中的值传给局部组件。
全局子组件代码：
父组件：

测试代码：
&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;

&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;meta name="viewport" content="width=dev]]></description><category></category></item><item><title><![CDATA[VUE,element-ui，优化tabs组件每次点击，所有子页面都重新渲染问题。]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109188209</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109188209</guid><author>NI_computer</author><pubDate>Tue, 20 Oct 2020 20:12:49 +0800</pubDate><description><![CDATA[在element-ui的tabs组件中，我们发现每次切换页面，所有的子组件都会重新渲染一次。当子页面需要发送数据请求并且子页面过多时，这样会过多的占用网络资源。这里我们可以使用v-if来进行判断是否渲染该子页面。
1.定义一个数组，用来判断该页面是否需要渲染
data() {
    return {
      activeName: "allOrder",
      pages: {
        allOrder: true,//第一个需要渲染的页面
        unpaid: false,
]]></description><category></category></item><item><title><![CDATA[VUE，父页面向子页面传值。]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109187956</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109187956</guid><author>NI_computer</author><pubDate>Tue, 20 Oct 2020 20:00:33 +0800</pubDate><description><![CDATA[在父页面中，我们使用了自定义的子页面，这时候我们需要将父页面的id传输给子页面。可以自定义一个绑定事件在子组件上，例如：
父页面：
 &lt;basicMsg :id="id" &gt;&lt;/basicMsg&gt;

basicMsg为我的自定义子组件名称，引号内为需要传输的值。这里我传输的id为data内定义的id。
子页面：
使用props来接收父组件传输的数据，props定义在与data同级。
这里也可以给接收的数据进行一个简单的数据类型判断。
例如：str为string类型，str1为obje]]></description><category></category></item><item><title><![CDATA[Vue，element-ui中使用tabs，载入子页面并优化。]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109186381</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109186381</guid><author>NI_computer</author><pubDate>Tue, 20 Oct 2020 19:45:11 +0800</pubDate><description><![CDATA[在element-ui组件中有一个tabs标签页，可以在单页面中注入多页面。
但是例子中的页面只是一行文字，在实际应用开发中我们需要写入的代码很多，如果都写在该页面就会非常不美观，所以这里我使用了子页面，并自定义组件载入到单页面中。
1.在页面中写入element-ui组件中的代码。
直接把官网上的东西复制下来就行，根据自己需要增加和删除页面。
2.定义子页面
创建一个文件夹存放子页面，将子页面文件创建出来。

3.主页面引入子页面

4.注册子组件，在data同级下写components

5.在tabs]]></description><category></category></item><item><title><![CDATA[VUE，element-ui自带表单验证失败，解决v-model和prop无法绑定问题]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109155000</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109155000</guid><author>NI_computer</author><pubDate>Mon, 19 Oct 2020 09:53:08 +0800</pubDate><description><![CDATA[在使用element-ui时，使用了里面自带的表单验证功能。当数据回显在输入框时，仍然无法通过验证。

原代码：
模态框内代码：
data内验证代码:
查询过后，发现是v-model绑定的数据需要于prop的内的名字相同。
修改后：
这样就能通过表单验证了。

...]]></description><category></category></item><item><title><![CDATA[VUE,webpack打包（自动配置）]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109082341</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109082341</guid><author>NI_computer</author><pubDate>Thu, 15 Oct 2020 19:48:04 +0800</pubDate><description><![CDATA[生成一个基于vue+webpack的项目
1.在终端中进入需要创建项目的文件夹，安装vue/cli-init
cnpm install @vue/cli-init -g

2.创建项目模板-webpack
vue init webpack app01（你的项目名字）
vue init webpack app01

选择需要的配置然后“y”

生成的过程比较漫长可以慢慢等，大概需要十分钟。
完成后可以看到多了一个文件夹。
3.安装依赖
cnpm install

4.运行项目
npm run dev

5.编]]></description><category></category></item><item><title><![CDATA[解决“Required Integer parameter ‘xxx‘ is not present”问题]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109098255</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109098255</guid><author>NI_computer</author><pubDate>Thu, 15 Oct 2020 15:34:51 +0800</pubDate><description><![CDATA[在使用axios发送post请求的时候，我们将需要发送的数据封装为一个obj对象，但是在浏览器报错。
意思是必填的传输数据不正确，可能是没有填或者是错误。可以引入jQuery来进行一个数据转换。
在html界面引入jQuery
&lt;script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"&gt;&lt;/script&gt;


如果是使用vue-cli脚手架搭建的项目，在public文件夹下的index.html]]></description><category></category></item><item><title><![CDATA[VUE,webpack简单使用脚本打包（手动配置）]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109081327</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109081327</guid><author>NI_computer</author><pubDate>Wed, 14 Oct 2020 20:13:15 +0800</pubDate><description><![CDATA[Webpack是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔，等到实际需要的时候再异步加载。通过loader的转换，任何形式的资源都可以视作模块，比如CommonJs模块、AMD模块、ES6模块、CSS、图片、JSON、Coffeescript、LESS等。
webpack官网地址
webpack的简单使用：
使用前提：已经安装了node.js最近版本
1.初始化项目
进入项目中
npm init 

一直]]></description><category></category></item><item><title><![CDATA[Vue，在vue-cli上进行组件页面切换]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109035852</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109035852</guid><author>NI_computer</author><pubDate>Tue, 13 Oct 2020 16:09:38 +0800</pubDate><description><![CDATA[进行组件切换的两种方法：
一.动态组件
1.在components内自定义两个子组件并载入到根组件上
student.vue:
&lt;template&gt;
  &lt;div id="student"&gt;
    &lt;h3&gt;student list&lt;/h3&gt;
    &lt;ul&gt;
      &lt;li v-for="(item, index) in students" :key="index"&gt;
        {{ item }}
      &lt;/l]]></description><category></category></item><item><title><![CDATA[VUE，vue-cli项目结构，以及在vue-cli脚手架原始项目框架引入模块]]></title><link>https://blog.youkuaiyun.com/NI_computer/article/details/109034934</link><guid>https://blog.youkuaiyun.com/NI_computer/article/details/109034934</guid><author>NI_computer</author><pubDate>Mon, 12 Oct 2020 20:07:58 +0800</pubDate><description><![CDATA[一、项目结构：
初始化一个vue-cli之后，我们可以在目录中看到以下结构。

app.vue
src下的app.vue是项目的根组件，可以包含其他的子组件。在项目运行时进入的首页即为app.vue。子组件写在src文件夹下的components内。根组件和子组件组成组件树。

main.js

mian.js是vue应用的入口文件，可以创建一个新的vue实例并挂载再根节点下。Vue插件也从这里引入。
二、添加引入新模块
1.在components文件夹下新建一个vue文件

模块内基本组件：

templ]]></description><category></category></item></channel></rss>