当前位置 : 主页 > 网络编程 > JavaScript >

Vue前端判断数据对象是否为空的实例

来源:互联网 收集:自由互联 发布时间:2021-04-05
看代码: Vue提供了强大的前端开发架构,很多时候我们需要判断数据对象是否为空,使用typeof判断是个不错选择,具体代码见图。 补充知识: vue打包后 history模式 跟子目录 静态文件路

看代码:

Vue提供了强大的前端开发架构,很多时候我们需要判断数据对象是否为空,使用typeof判断是个不错选择,具体代码见图。

补充知识:vue打包后 history模式 跟子目录 静态文件路径 分析

history

根目录

路由mode变为history后,需要在服务器配置 url重写,在根目录 创建web.config文件 加下面内容复制进去

<?xml version="1.0" encoding="utf-8"?>
<configuration> 
<system.webServer>
 <rewrite>
  <rules>
  <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
   <match url="(.*)" />
   <conditions logicalGrouping="MatchAll">
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
   </conditions>
   <action type="Rewrite" url="/index.html" />
  </rule>
  </rules>
 </rewrite>
 </system.webServer>
</configuration>

background: url('/static/logo.png') no-repeat center/ 50%; 跟路径 / 和 相对路径

<img src="/static/logo.png" alt="" srcset=""> 跟路径 / 和 相对路径

<div class="image1" style="background:url('../static/logo.png')"></div> 跟路径 / 和 ../

<img :src="image" alt="" srcset="">  跟路径 / 和../
data () {
 return {
 image: '../static/logo.png'
 }
}

子目录

例如我在根目录下创建子目录名为app的文件夹作为项目文件夹

路由mode变为history后,需要在服务器配置 url重写,在根目录 创建web.config文件 加下面内容复制进去 与根目录不同的是

action 标签 url /app/index.html

<?xml version="1.0" encoding="utf-8"?>
<configuration> 
<system.webServer>
 <rewrite>
  <rules>
  <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
   <match url="(.*)" />
   <conditions logicalGrouping="MatchAll">
      <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
   </conditions>
   <action type="Rewrite" url="/app/index.html" />
  </rule>
  </rules>
 </rewrite>
 </system.webServer>
</configuration>

config index.js文件下 build对象中publicPatch 从默认的 / 改成 自己部署的 子目录名称 /app/

build: {
 // Paths
 assetsRoot: path.resolve(__dirname, '../dist'),
 assetsSubDirectory: 'static',
 assetsPublicPath: '/app/',
}

router.js 需要改下 base 根据不同的打包环境 dev 默认就是 / pro需要根据项目路径

var base = process.env.NODE_ENV === 'development' ? '/' : '/app/'

export default new Router({
 mode: 'history',
 base: base,
 routes: []
})

background: url('../../static/logo.png') no-repeat center/ 50%; 相对路径

<img src="../../static/logo.png" alt="" srcset=""> 相对路径

<div class="image1" style="background:url('../static/logo.png')"></div> ../

<img :src="image" alt="" srcset=""> ../
data () {
 return {
 image: '../static/logo.png'
 }
}

总结:

history模式,本地运行 肯定是在根目录 127.0.0.1:xxxx/# 使用上面根目录方法

打包发到生产环境,视情况使用

根目录和子目录 有些相同的引入方法

建议 直接使用相同的方法 同时适应根目录和子目录 部署

background: url('../../static/logo.png') no-repeat center/ 50%; 相对路径

<img src="../../static/logo.png" alt="" srcset=""> 相对路径

<div class="image1" style="background:url('../static/logo.png')"></div> ../

<img :src="image" alt="" srcset=""> ../
data () {
 return {
 image: '../static/logo.png'
 }
}

以上这篇Vue前端判断数据对象是否为空的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

网友评论