Taro的静态资源引入方式和以前的使用Webpack的方式稍有不同,我们就以引入JavaScript文件和Image图片文件为例,讲解Taro中引入静态资源的正确方法。

JavaScript资源的引入方法

JavaScript资源的引入其实和原来差不多,比如现在我们定义了一个方法叫做Zhangsan,然后再定义一个方法叫LiSi。
在/src目录下,新建一个/tools文件夹,然后在文件夹下边建立一个index.js文件,输入下面的代码。

  1. export function zhangSan(){
  2. console.log('我是张三')
  3. }
  4. export function liSi(){
  5. console.log('我是李四')
  6. }

这时候我们如果想在blog.jsx下使用这两个方法,可能你会错误的使用.

  1. import tools from `../../tools`

正确的引入方式应该是:

  1. import {zhangSan,liSi} from '../../tools'

使用方法如下:

  1. useEffect(()=>{
  2. zhangSan()
  3. liSi()
  4. },[])

图片的引入

会了JS的引入和使用,再来看一下最长使用的图片如何引入。这里是不可以直接使用的。
我们通常的做法

  1. <Image src="../../static/newbbd0001.jpg" width="100px" height="100px" />

这种方式是没办法引入成功的,因为我们的程序最终是要通过Taro编译器进行编译的,编译后的文件目录会进行改变,你所引用的图片就会失效。
正确的引入方式是先用import进行引入,然后在使用src属性,这里给出blog.jsx的全部代码。

  1. import Taro ,{useState ,useEffect}from '@tarojs/taro'
  2. import {View , Text ,Button,Image} from '@tarojs/components'
  3. import {xiedajiao,liuying} from '../../tools'
  4. import newbbd from '../../static/newbbd0001.jpg'
  5. function Blog(){
  6. useEffect(()=>{
  7. xiedajiao()
  8. liuying()
  9. },[])
  10. const [blogTitle,setBlogTitle]=useState('JSPangBlog')
  11. const [introduce,setIntroduce]=useState('111111')
  12. const gotoIndex=()=>{
  13. Taro.navigateTo({url:'/pages/index/index? blogTitle='+blogTitle+'&introduce='+introduce})
  14. }
  15. return (
  16. <View>
  17. <Text>Blog Page111</Text>
  18. <Button onClick={gotoIndex}>我要去Index页面</Button>
  19. <View>
  20. <Image src={newbbd} width="100px" height="100px" />
  21. </View>
  22. </View>
  23. )
  24. }
  25. export default Blog

如果你觉的这样比较麻烦,你也可以直接使用require在Image组件中直接使用,代码如下:

  1. <Image src={require('../../static/newbbd0001.jpg')} width="100px" height="100px" />